windows程式分為「程式**」和「ui資源」兩大部分最後以rc編譯器集成為乙個完整的exe檔案。
「以訊息為基礎,以事件驅動(message based,event driven)」
程式的開始與結束大致如下:
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取得,結束訊息迴圈
Windos 程式的生與死
windows程式的生與死 摘自侯俊傑 深入淺出mfc 1 程式的初始化過程中呼叫createwindow,為程式建立了乙個視窗,作為程式的螢幕舞台,createwindow產生視窗之後會送出wm create直接給視窗函式,後者於是可以在此時做一些初始化操作 例如配置記憶體 開啟檔案 讀取初始資料...
MFC程式的誕生與死亡
mfc程式的誕生與死亡 注 摘抄自候捷的 深入淺出mfc 第二版。程式的誕生 2.afxwinmain執行afxwininit,後者又呼叫afxinitthread,把訊息佇列盡量加大到96。6.cmyframewnd構造函式呼叫create,產生視窗種類,自行為我們註冊乙個名為 afxframeo...
乙個WinForm程式的生與死
如同嬰兒的降生,winform程式有乙個起點,那就是它的main函式 如同乙個青年的成長和一次次成功,乙個窗體中可以一次次的完成各種任務 如同人類的生生不息,乙個winform窗體可以孕育乙個新的窗體 如同老人的逝去,winform在經歷完我們的操作,退出最後乙個窗體。應用程式有其完整的生命週期。我...