MFC原理第二講 MFC的初始化過程

2022-03-20 20:36:05 字數 1185 閱讀 7600

通過上一講.我們手工模擬了乙個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...