- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Win32 API用程序框架结构简
Win32 API应用程序框架结构(2)
?
1.3.3?
与传统的C程序一样,在程序的开始都会包含头文件,并在程序中会有对调用函数的申明。在每一个用C编写的Windows程序中,都会用到一个头文件WINDOWS.H。其实,WINDOWS.H只是一个包含文件,包含了其他的Windows头文件。当然,在这些被包含的头文件中也可能还包含着其他的Windows头文件。这些头文件中最重要的有如下几种。
●??? WINDEF.H:基本类型的定义。
●??? WINNT.H:支持Unicode的类型定义。
●??? WINGDI.H:图形设备接口的定义。
●??? WINUSER.H:用户接口的定义。
●??? WINBASE.H:内核函数的定义。
●??? WINSOCK.H和WINSOCK2.H:用于网络通信的套接字的定义。
在这些头文件中,定义了Windows提供的所有数据类型、常数标识符、函数原型和数据结构等,都是Windows文档中最重要的部分。在Visual C++的Include子目录中可以找到所有的头文件。
1.3.4? 函数和数据结构
在C语言中有一个入口函数main,在Windows应用程序中同样也有一个入口函数WinMain,它的原型在WINBASE.H中声明,如下所示:
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPreInstance,
LPSTR lpCmdLine, int nShowCmd);
其中,第一个参数被称为“实例句柄”,该句柄惟一地标识了该程序,其他Windows函数可以通过将该句柄作为参数来调用该程序;第二个参数只是为了与早期的版本相兼容,在32位Windows程序中,该概念已经不再被采用,所以总是设置为NULL;第三个参数用于运行程序的命令行,可以通过它将文件在程序启动时载入内存;第四个参数表示程序在运行时是以何种方式显示的(从正常、最大化和最小化中选一)。
在程序Hello中,除了用到WinMain函数外,还用到了以下的API函数。
●??? LoadIcon:为程序加载图标以供使用。
●??? LoadCursor:为程序加载鼠标指针以供使用。
●??? GetStockObject:获取图形对象。
●??? RegisterClass:为主程序的窗口注册窗口类。
●??? ShowWindow:在屏幕上显示窗口。
●??? UpdateWindow:命令窗口刷新自身。
●??? GetMessage:从消息队列中获取消息。
●??? TranslateMessage:转换某些键盘消息。
●??? DispatchMessage:将消息发送给窗口过程。
●??? BeginPaint:开始在窗口的客户区绘制。
●??? GetClientWindow:获得窗口客户区的尺寸。
●??? SetTextColor:设置文本的颜色。
●??? DrawText:显示文本串。
●??? EndPaint:结束绘制。
●??? InvalidateRect:强制刷新指定的区域,程序Hello刷新整个窗口的客户区。
●??? PostQuitMessage:在消息队列中插入一条“退出”消息。
●??? DefWindowProc:执行默认的消息处理。
这些函数在头文件WINDOWS.H中都有原型的申明,具体的信息可以查阅MSDN(Microsoft Developer Network)中SDK平台的部分函数说明。除了用到的这些API函数外,还使用了在Windows头文件中定义的4个数据类型:MSG(消息结构)、WNDCLASS(窗口类结构)、PAINTSTRUCT(绘图结构)和RECT(矩形结构)。
1. 消息结构
消息结构定义一个用于发送的消息,其中包含消息的具体信息,在程序接收到消息后,根据其中包含的信息做出相应的处理。其结构声明如下:
typedef struct tagMSG {
??? HWND hwnd;????????? // 获得消息的窗口句柄
??? UINT message;?????? // 消息标志
??? WPARAM wParam;????? // 消息的附加信息
??? LPARAM lParam;????? // 消息的附加信息
??? DWORD time;???????? // 消息的发送时间
??? POINT pt;?????????? // 当消息发送时,鼠标所处的屏幕位置
} MSG, *PMSG;
2. 窗口类结构
窗口总是在窗口类的基础上创建的,窗口类用来标识处理窗口消息的窗口过程。在一个窗口类的基础上可以创建多个窗口的实例,所以在程序创建窗口之前,必须先调用函数RegisterClass
您可能关注的文档
- UM_HR02_员基本信息维护流程.doc
- UNESCO(联合教科文组织)问卷调查语言的活力和多样性.doc
- UM_HR03_招录用流程.doc
- Unit 1 Tems of Payment.doc
- uni-t钳形电流和HIOKI3283交流泄漏电流钳形表价格.docx
- Unit 10 新野大学英语第二册.doc
- Unit 2 新视大学英语第三册.doc
- Unit 2 Whre Is the Science Museum教学设计.doc
- Unit 4 Tems of Payment.doc
- Unit 6 Toic 1 Is there a computer in your study?Section A _杨琼.doc
- 英语人教PEP版八年级(上册)Unit4+writing+写作.pptx
- 人美版美术四年级(上册)8 笔的世界 课件 (1).pptx
- 人美版美术七年级(上册)龙的制作.pptx
- 英语人教PEP版六年级(上册)Unit 2 第一课时.pptx
- 数学苏教版三年级(上册)3.3 长方形和正方形周长的计算 苏教版(共12张PPT).pptx
- 音乐人教版八年级(上册)青春舞曲 课件2.pptx
- 音乐人教版四年级(上册) 第一单元 音乐知识 附点四分音符|人教版.pptx
- 英语人教PEP版四年级(上册)Unit 6 Part B let's learn 1.pptx
- 道德与法治人教版二年级(上册)课件-3.11大家排好队部编版(共18张PPT).pptx
- 人美版美术七年级(上册)《黄山天下奇》课件1.pptx
文档评论(0)