1. 用WNDCLASS结构创建一个窗口实例,并指明:
这个窗口的“监听”函数
窗口名
窗口当前所在应用程序的实例句柄
用RegisterClass函数注册这个结构体实例
用CreateWindow函数创建定义好的窗口实例(通过窗口实例名指出创建哪个窗口实例),窗口实例创建好后返回一个句柄,通过这个句柄“操作”
对应的窗口(一个句柄一一对应一个窗口实例或一个窗口实例有一个唯一的句柄,一个窗口实例一一对应一个“监听”函数)
GetMessage函数捕捉所有的“非窗口消息”和对应句柄或当前整个应用程序所有句柄(当其第二个参数为NULL时)的消息,并能够做出
判断(DispatchMessage函数)传给相应的函数处理(若返回值不为0,返回值为0退出循环了,不会传)
2. “监听”函数通过GetMessage函数监听其窗口实例上发生的所有“动作”,具体过程如下:
窗口实例上被点击->产生一个消息,被GetMessage函数捕捉,然后窗口消息被传到窗口实例对应的“监听”函数->“监听”函数对传进来的消息
进行处理->(产生一个非窗口消息,被GetMessage函数捕捉并处理,非窗口消息不会被传给某一个“监听”函数。此时分两种情况,一,返回值为0,退出循环了,消息不传;二,返回值不为0,消息传给系统等其他函数处理)
3. GetMessage函数捕捉所有的“非窗口消息”和对应句柄或当前整个应用程序所有句柄(当其第二个参数为NULL时)的消息,并传给相应的函数处理(若返回值不为0,返回值为0退出循环了,不会传),
消息主要分为两类:“窗口消息”和“非窗口消息”,“窗口消息”传给的函数即窗口实例对应的“监听”函数,“非窗口消息”传给系统等其他函数进行处理
4. DefWindowProc函数必须调用,它将(处理后的)消息传给操作系统,至此,一个完整的消息循环完成
操作系统提供了应用程序编程接口操作系统API,开发应用程序时所用的开发语言也有写好的库函数,类库等
阅读(1080) | 评论(0) | 转发(0) |