程式的誕生
#afxwinmain執行afxwininit,後者又呼叫afxinitthread,把訊息佇列盡量加大。
#cmyframewnd構造函式呼叫create,產生主視窗。我們在create引數中指定的視窗類是null,於是mfc根據視窗種類,自行為我們註冊乙個名為"afxframeorview42d"的視窗類。
#回到initinstance中繼續執行showwindow,顯示視窗。
#執行updatewindow,於是發出wm_paint.
#回到afxwinmain,執行run,進入訊息迴圈。
程式開始執行
#wm_paint經由::dispatchmessage送到視窗函式cwnd::defwindowproc中。
#cwnd::defwindowproc將訊息傳遞給訊息對映**(message map)
#傳遞過程中發現有相符專案,於是呼叫專案中對應的函式。此函式是應用程式利用begin_message_map和end_message_map之間的巨集設立起來的。
#標準訊息的處理程式亦有標準命名,例如wm_paint必然由onpaint處理。
程式的死亡
#使用者單擊file/close,於是發出wm_close.
#cmyframewnd並沒有設定wm_close處理程式,於是交給預設的處理程式。
#預設函式對於wm_close的處理方式就是呼叫::destorywindow,並因而發出wm_destory。
#預設的wm_destroy處理方式是呼叫::postquitmessage。因此發出wm_quit.
#最後回到afxwinmain,執行afxwinterm,結束程式。
MFC程式的執行過程
一 程式的誕生 2 afxwinmain執行afxwininit,後者呼叫afxinitthread,把訊息佇列盡量加大到96 6 cmyframewnd構造呼叫create,產生主視窗,我們在create引數中指定的視窗類是null,於是mfc根據視窗種類,自行的為我們註冊乙個名為 afxfram...
MFC程式執行過程
一 mfc程式執行過程剖析 相信大家有點暈點了吧,實際程式設計中沒有必要深刻理解這麼多,這些大都是由mfc內部自動幫我們完成的。實際mfc程式設計過程中,其實懂得mfc程式中各個函式的執行流程即可。有時候過於追究mfc細節會白白浪費我們的精力,應該將主要精力放在使用mfc解決實際問題上。二 vc6中...
VS中MFC執行過程
win32程式是從winmain開始執行的,但是mfc把winmain給封裝,編譯到mfc80.dll中了。mfc執行順序 1 windows呼叫winmain函式 2 winmain裡面呼叫afxwinmain函式 3 4 如果initinstance函式返回true,呼叫cwinthread中的...