MFC框架程式剖析 5

2021-07-05 19:30:55 字數 1231 閱讀 1007

最後乙個講解,我們來講乙個按鈕的例子加深一下對mfc框架的理解吧。

首先,我們知道關於按鈕的類是cbutton,派生於cwnd,也是乙個視窗類。

我們利用這個類定義乙個視窗類物件,建立完物件之後,你要產生這個視窗的話還要用到我們之前提過的createex函式,從而生成視窗。

那建立在**呢?我們再把圖拿出來:

明顯,我們想把按鈕顯示在視視窗上,那麼mfc又是採用了一種訊息對映機制(可以簡單理解成產生訊息之後我們可以捕獲到這個訊息並且去執行相應的操作),那麼我們可以在視視窗生成的時候同時生成按鈕,這個時候我們注意:

1.視視窗生成的時候會產生wm_create這個訊息,然後我們需要乙個函式來響應這個訊息,那就是oncreate這個函式啦,我們可以在這裡生成我們的按鈕。

2.但是我們在ctestview這個類的主檔案(.c

)並沒有找到oncreate這個函式,預設是不給的,這個時候我們自行新增,在class view上右鍵選擇class wizard,選擇message,這時候我們就可以新增函式啦。

3.新增完之後我們在ctestview.c這個檔案裡可以看到oncreate函式,然後我們來生成這個按鈕:

(1)cbutton btn;定義乙個按鈕物件,然後呼叫其btn.create。

(2)若是在oncreate函式裡面定義的話,我們可以看到視視窗並沒有生成按鈕,因為btn此時是個區域性物件,函式執行完它的生命週期也就結束了。

(3)在ctestview這個類的宣告中定義,btn便為全域性物件了,這時在oncreate函式用使用btn.create(),視視窗便可以看到我們的按鈕了。

4.最後,看一下create函式的使用:

bool create(lpctstr lpszclassname,

lpctstr lpszwindowname, dword dwstyle,

const rect& rect,

cwnd* pparentwnd, uint nid,

ccreatecontext* pcontext = null);

總結:看完實操一遍加深理解,推薦書:孫鑫老師的vc++深入了解,理解完框架和訊息對映機制之後後面的學習也就是熟悉使用其他的類而已了~~

MFC框架程式剖析

1 mfc microsoftfoundation class,微軟基礎類庫 是微軟為了簡化程式設計師的開發工作所開發的一套c 類的集合,是一套物件導向的函式庫,以類的方式提供給使用者使用 二 基於mfc的程式框架剖析 1 mfc程式的classview標籤頁 圖 2 繼承關係 1 cmainfra...

MFC框架程式剖析

mfc程式的執行過程 4 進入訊息迴圈。雖然也設定了預設的視窗過程函式,但是mfc應用程式實際上是採用訊息對映機制來處理各種訊息的。當收到wm quit訊息時,退出訊息迴圈,程式結束。面已經知道,在乙個windows程式中,winmain函式作為程式的入口函式,乙個程式的是 設計視窗 給視窗設定相應...

三 MFC框架程式剖析

1.cwnd 類 cwnd 類是mfc中乙個重要的類,它封裝了與視窗有關的操作。2.mfc 中的winmain mfc全域性物件 5.afxwinmain 函式 winmain 6.設計和註冊視窗 mfc已經為我們預定義了一些預設的標準視窗類,只需要選擇所需的視窗類,然後註冊就可以了。視窗類的註冊是...