通過上一講.我們手工模擬了乙個mfc程式. 但是上一講留下了疑問. 就是winmain在哪.以及訊息處理在**.
也就是mfc的初始化過程.
我們上一講模擬了mfc程式.要查詢winmain很簡單.
1.除錯啟動. f10快捷鍵. 這樣直接定位到winmain
2.因為我們的initinstance呼叫.我們可以下段點.然後棧回朔可以看到上一層也就是winmain呼叫的一層.
第一種方法.
第二種方法:
因為mfc框架太大.現在不利於我們直接看mfc原始碼學習.所以我們要從最簡單的模擬開始.
我們可以msdn檢視一下.
經過上圖可以看出. 最頂層的類都是cobject 第二個則是 ccmdtarget類.
因為關鍵字保留了.所以都加上了my做字首.
應用程式截圖:
上面我們已經將該有的類.該繼承的類已經寫好了.現在我們就可以寫自己的類模擬了.
1.首先需要initinstance這個虛函式. 這個虛函式看mfc原始碼是放在 cwindthread類中. 所以我們也定義乙個.放在我們的cmywinthread中.
2.還需要乙個 m_pmainwnd指標.來儲存使用者建立的視窗控制代碼.所以我們也定義乙個. mfc中也是放在cwinthread類中.所以我們放到我們的裡面. 但是要包含我們寫的cmywnd類.因為指標的型別是cwnd *
而這個類我們也定義了.
4.實現我們的create();
**部分截圖:
**會上傳到網盤中.
MFC程式的初始化過程
mfc程式是乙個windows程式,它的內部也有視窗註冊操作,視窗產生操作,訊息迴圈操作和視窗函式。mfc中類的兩個虛函式和initinstance,前者負責 每乙個程式只做一次 的操作,後者負責 每乙個例程都得做一次 的操作。通常,系統會 並且有能力 為我們註冊一些標準的視窗類 當然也準備了一些標...
01 MFC的初始化
test.cpp include using namespace std public int main class.h ifndef class h define class h class cwnd class cobject 完美分割線 class ccmdtarget public cobj...
MFC 控制項初始化的過程
之前為了學習mfc下瀏覽器的用法,參考博文 雖然按照作者的方法實現了瀏覽器的功能,但是作者在on size訊息中調整瀏覽器控制項大小的方法出現斷言錯誤,主要錯誤如下 在進入到下面函式段時,setwindowpos 出現錯誤。錯誤在此處,assert iswindow m hwnd m pctrlsi...