Windows程序的生于死

1.程序初始化过程中调用CreateWindow, 为程序建立了一个窗口,作为程序的屏幕舞台,CreateWindow产生窗口之后会送出WM_CREATE直接给窗口函数,后者可以在此时做一些初始化操作(例如配置内存,打开文件,读初始化数据.....)

2.在程序活着的过程中,不断以GetMessage从消息队列中抓取消息,如果这个消息是WM_QUIT,GetMessage会返回0结束While循环,进而结束整个程序。

3.DispatchMessage通过Windows USER模块的协助和监督,把消息派发至窗口函数。消息在该处被判别并处理。

4.程序不断进行2.和3.的操作。

5.当使用者按下菜单中的close命令项时,系统送出WM_CLOSE,通常程序的窗口函数不拦截此消息,于是DefWindowProc处理它。

6.DefWindowProc收到WM_CLOSE后,调用DestroyWindow 把窗口清楚,DestroyWindow本身又会送出WM_DESTROY。

7.程序对WM_DESTROY的标准反应是调用PostQuitMessage。

8.PostQuitMessage没什么其他操作,就只送出WM_QUIT,让消息循环中的GetMessage获得,如步骤2,结束消息循环。

posted @ 2012-06-13 23:46  桥边红药  Views(168)  Comments(0)    收藏  举报