- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
01章 SDK入门
01章 SDK入门
现在我们要学的是Windows32的编程,与DOS不同的是,实现的目标是一个具有你
所需要的功能的“窗口”。这个“窗口”时时刻刻都在与操作系统之间,通过一个称之
为“消息队列”的东西传送数据。因此处理好各种消息便成了Win32编程的核心。
SDK编程是相对于MFC来说的,也就是用C和C++来调用WindowsAPI,这API是操
作系统的东西,其他语言(如VB)也可以调用。因此,以前也有人将这种编程称为API
编程。当然,这儿对C或C++进行了一些扩展,所谓扩展,就是增加了许多宏定义、模
板,让你看了之后大吃一惊,真不知“何方神圣”倒底有何神通。
如果你C或C++还不会的话,请先学习C语言和C++语言,否则,你再刻苦也等于
看电影,也许你看懂了但你肯定不会演电影。学习窗口编程之前,你要知道几个概念。
1. 实例(instance): 这是C++的内容,“类”相当于结构体的数据类型,用
“类”这种类型去定义一个变量(如果是指针,则假定已经得到了空间),
这个变量就是那个“类”的“实例”。它和C语言中的变量是一回事,不
过只有用“类”定义的变量才称为“实例”。
2. 句柄(handle):这是C语言的内容,和文件句柄一样,它实际上是一个整
数,用来标识是哪一个实例,也就是实例的标识符。通过句柄可以操作这
个实例。
3. 回调(CALLBACK):这其实是C语言中的函数指针,函数指针一般在大项目
搭框架时常常使用。也就是你设计好要得到什么,把接口定义好,具体怎
么实现完全交给别人,别人只要把函数名传给你就OK。这个函数名就是地
址,不过取这种地址的指针在定义上与普通指针有些不同。小雅在《C语言
教程》的“函数指针”中有详细解说和例子。
一、WinMain()函数
WinMain()函数是窗口程序的入口函数,在这个函数中你就可以调用各种API函数
来完成你的目标。①一般是先调用RegisterClassEx()函数用当前窗口句柄去向操作系
统申请(或称登录)将要创建一个什么样的窗口,申请成功后,②再调用CreateWindowEx()
函数创建一个窗口对象,这仅仅是一个外观,③还要调用ShowWindow()函数设置初期表
示,即最大或最小或普通等。④最后还要调用UpdateWindow()函数向窗口传送WM_PAINT
消息来画出窗口里面的内容。
窗口创建完后,这是一个“静止”的窗口,⑤因此还要在WinMain()函数的最后添
加消息循环,最后才return。WinMain()函数完了之后,⑥还要再编写一个“窗口消息
处理”函数。上面讲了一大堆API函数的调用也许有点昏头,但那些全是固定的,基本
上不要编程。在你理解之后,只要修改少量参数便可,真正要编程的是这个“窗口消息
处理”函数。
下面我们从简单入手,先不创建窗口,而只是调用一下通用对话框。主
要是了解WinMain()函数。
#include windows.h
int APIENTRY WinMain(HINSTANCE hInstance, //当前窗口实例句柄
HINSTANCEhPrevInstance,//前一个实例句柄,Win32下为
NULL
LPSTR lpCmdLine, //命令行参数字符
int nCmdShow //窗口的显示方式
)
{
MessageBox(NULL,劝学网欢迎您!, /, MB_OK); //通用
对话框
return 0; //函数返回值
}
初学者不明白的地方还很多,但大都可以就这样先用,以后慢慢理解,小雅当初问
了很多“高手”,答案却让我更不明白,只好“慢慢理解”。这样拖了几年,现在小雅
就一一解说,如有不对,上论坛指摘2句。
1. APIENTRY不是返回类型,这是为编译器准备的一个宏定义,告诉编译器将
您可能关注的文档
- 第六章 word目录、页码如何设置(超简单).docx
- 自动控制原理 第三篇 控制系统的时域分析.pdf
- 第3篇 解线性方程组的直接方法2.ppt
- 第2章 微处理器和总线.ppt
- 速网-CDN.网页与图片系统介绍(FastCache)-202.pdf
- 第2章 win7下ssd优化设置超全.doc
- 中位数及众数新版人教版.ppt
- 第七章 检错和纠错.ppt
- 第03章-2 离散傅里叶变换与其性质.ppt
- 第十章 Excel2007基础.ppt
- 2025年中国乙氧苯柳胺软膏市场调查研究报告.docx
- 2025年及未来5年电信设备项目市场数据调查、监测研究报告.docx
- 2025年中国产宝口服液市场调查研究报告.docx
- 2025年及未来5年远红外线热敷按摩仪之瑞颈灵项目市场数据分析可行性研究报告.docx
- 2025年中国2—氨基—4,6—二氯嘧啶市场调查研究报告.docx
- 2025年及未来5年双层风琴帘项目市场数据调查、监测研究报告.docx
- 2025年及未来5年多功能短路定位分析仪项目市场数据调查、监测研究报告.docx
- 2025年中国换芯型烟嘴市场调查研究报告.docx
- 2025年及未来5年印章防伪项目市场数据调查、监测研究报告.docx
- 2025年中国超小型冷冻修边机市场调查研究报告.docx
原创力文档


文档评论(0)