Windows 程序的生与死

对Windows 消息种类以及发生时机的透彻了解,正是程序设计的关键。现在我以窗口的诞生和死亡,说明消息的发生与传递,以及应用程序的兴起与结束,请看图1-5 及图1-6。

Windows 程序的生与死

Windows 程序的生与死


为什么结束一个程序复杂如斯?因为操作系统与应用程序职司不同,二者是互相合作的关系,所以必需各做各的份内事,并互以消息通知对方。如果不依据这个游戏规则,可能就会有麻烦产生。你可以作一个小实验,在窗口函数中拦截WM_DESTROY,但不调用PostQuitMessage。你会发现当选择系统菜单中的Close 时,屏幕上这个窗口消失了,(因为窗口摧毁及数据结构的释放是DefWindowProc 调用DestroyWindow 完成的),但是应用程序本身并没有结束(因为消息循环结束不了),它还留存在内存中。