/*
*hellomfc.h
*/#ifndef _hello_mfc_
#define _hello_mfc_
public:
virtual bool initinstance();
};class cmainwindow : public cframewnd;
#endif
/*
*hellomfc.cpp
*/#include #include "hellomfc.h"
begin_message_map(cmainwindow, cframewnd)
on_wm_lbuttondown()
end_message_map()
cmainwindow::cmainwindow()
void cmainwindow::onlbuttondown(uint nflags, cpoint point)
我們現在如圖所示f9下斷點,然後f10進入到afxwinmain中;
下面我們將afxwinmain提出來寫點注釋:
int afxapi afxwinmain(hinstance hinstance, hinstance hprevinstance,
_in_ lptstr lpcmdline, int ncmdshow)
*/ if (!afxwininit(hinstance, hprevinstance, lpcmdline, ncmdshow))
goto initfailure;
// 全域性初始化,幾乎不用,我們不去關注它
goto initfailure;
// 這就是我們的核心,就是我們**中我們的類重寫的虛函式,這裡就進到我
//們的initinstance,這裡也就解釋了為什麼我們的initinstance()要放回true
//如果返回false就會銷毀視窗,退出程式
if (!pthread->initinstance())
nreturncode = pthread->exitinstance();
goto initfailure;
} //這裡就實現win32中訊息迴圈,下面把關鍵**貼出來
/* // acquire and dispatch messages until a wm_quit message is received.
for (;;)
// 非空閒狀態
do} while (::peekmessage(&(pstate->m_msgcur), null, null, null, pm_noremove));
} */
nreturncode = pthread->run();
initfailure:
#ifdef _debug
// check for missing afxlocktempmap calls
if (afxgetmodulethreadstate()->m_ntempmaplock != 0)
afxlocktempmaps();
afxunlocktempmaps(-1);
#endif
afxwinterm();
return nreturncode;
}
MFC執行框架
2 winmain登場 extern c int winapi twinmain hinstance hinstance,hinstance hprevinstance,lptstr lpcmdline,int ncmdshow twinmain函式的 t 是為了支援unicode而準備的乙個巨集。...
MFC單文件框架分析及執行流程
首先來分析一下mfc單文件類的結構 它包括如下幾個類 caboutdlg 對話框框類,對應應用程式的 幫助 關於 選單,彈出 關於 對話方塊。cmainframe 派生自cframewnd類,為框架視窗物件,對應應用程式的主視窗。c view 派生自檢視類cview 為檢視物件,對應應用程式的客戶視...
zendframework 框架執行流程
1 通過url重寫請求都定位到入口檔案,預設是index.php 2 入口檔案載入系統的配置,單例生成前端控制器。老版本的框架需要在入口檔案中新增部分配置和外掛程式註冊,後來由專門負責程式引導的bootstrap類控制 3 前端控制器初始化請求和返回物件,獲取路由分發到具體控制器的動作 4 控制器根...