1、Windows 程序基本原理,教 师: 王 涛 电 话: 51688243 办公室: 九教北512 E-mail: ,计算机软硬件的相互关系,Windows API,应用程序通过操作系统来操作计算机设备. 操作系统把它所能够完成的功能以函数的形式提供给应用程序使用,这些函数的集合就是Windows操作系统提供给应用程序编程接口(Application Programming Interface),简称Windows API。,操作系统将感知的事件以消息(Message)形式通知应用程序. 每个应用程序维护一个消息队列,按照先后顺序从队列中取出消息并进行处理. Windows将消息封装成MSG结
2、构进行传递.typedef struct tagMSG HWND hwnd; UINT message;WPARAM wParam;LPARAM lParam;DWORD time;POINT pt; MSG;,消息队列,句柄(HANDLE)是资源的标识,本质上是一个无符号整数值. 操作系统要管理各种资源,都是通过句柄来查找对应资源。 根据不同类型的资源,句柄分为: 应用实例句柄(HINSTANCE) 窗体句柄(HWND) 图标句柄(HICON ) 光标句柄(HCURSOR) 设备环境句柄(HDC) 位图句柄(HBITMAP) 文件句柄(HFILE) 画笔句柄(HPEN) ,句柄,WinMai
3、n函数,WimMain函数为Windows程序的入口函数.int WINAPI WinMain(HINSTANCE hInstance, / 当前实例句柄HINSTANCE hPrevInstance, / 前一实例句柄LPSTR lpCmdLine, / 命令行参数int nCmdShow / 显示状态);,一个完整的窗口程序必须包括: 创建并显示窗口 设计窗口类 注册窗口类 创建窗口 显示并更新窗口 处理消息 边写消息循环 编写消息处理函数,完整的窗口程序,typedef struct _WNDCLASS UINT style; WNDPROC lpfnWndProc; int cbCls
4、Extra; int cbWndExtra; HANDLE hInstance; HICON hIcon; HCURSOR hCursor; HBRUSH hbrBackground; LPCTSTR lpszMenuName; LPCTSTR lpszClassName; WNDCLASS;,设计窗口类,第二个成员变量lpfnWndProc指定了这一类型窗口的过程函数,也称回调函数。 回调函数的原理是这样的,当应用程序收到给某一窗口的消息时,就应该调用某一函数来处理这条消息。该函数的调用由操作系统来完成,但是回调函数本身的代码必须由应用程序自己完成。,窗口过程函数,窗口过程函数的名字可以取不
5、同名字, 但函数原型(返回值类型,参数个数及类型)必须相同.LRESULT CALLBACK WndMsgProc(HWND hwnd, / 窗口句柄UINT uMsg, / 消息号WPARAM wParam, / 消息参数1LPARAM lParam / 消息参数2);,窗口过程函数,几个基本术语,API(Application Programming Interface, 应用编程接口) SDK(Software Development Kit, 软件开发工具包) MFC(Microsoft Found Class, 微软基本类) STL(Standard Template Library, 标准模板库) MSDN(Microsoft Software Developer Network, 微软提供的开发文档),