天天看點

MFC 基礎知識:主對話框與子對話框(一)

(僅供使用vs mfc初學者學習,高手莫見笑)

在mfc中通常會使用點選一個按鈕,彈出一個子對話框的基礎知識,這些都是學習mfc的基礎知識,也是非常重要的知識,這裡我就簡單的講講這些知識。

1.檔案-建立項目(我設定的過程名為:editset)-mfc應用程式-該頁面使用“基于對話框”-完成即可.

2.在“資源視圖”中打開dialog對話框,删除“todo:在此處放置對話框控件”和“确定”、“退出”按鈕。

3.在工具箱中添加一個按鈕button控件和一個編輯框edit control控件。可右鍵控件設定其屬性。其id我使用的就是預設的:idc_button1、idc_edit1.其中設定按鈕的caption為“子對話框”,即是設定其名稱。

4.運作其顯示的結果如下圖所示:

MFC 基礎知識:主對話框與子對話框(一)

1.在“資源視圖”中添加一個新的對話框。右鍵dialog,選擇“添加資源”;

2.在彈出的對話框中輕按兩下dialog,即實作建立一個對話框。預設名字為idd_dialog1;

MFC 基礎知識:主對話框與子對話框(一)

3.在子對話框中添加一個編輯框edit control控件,它的預設名為idc_edit1,但它對應的是子對話框的id名。點選狀态欄的“測試對話框”按鈕,測試目前對話框運作後的樣式。

1.輕按兩下主對話框中的“子對話框”按鈕,即可生成它相應的按鈕函數。在xxxdlg.cpp檔案(xxx為建立工程的過程名)中生成一個函數。

voidceditsetdlg::onbnclickedbutton1()

{

    // todo:在此添加控件通知處理程式代碼

}

它表示點選該按鈕就會執行相應函數中的響應操作。

2.輕按兩下idd_dialog1子對話框的空白處,為該對話框建立一個對話框類。(也可打開類導向添加對話框類)

3.在彈出的“mfc添加類向導”中輸入要添加類名(我常用c+xxx+dlg命名對話框類),同時預設的基類為cdialogex(擴充對話框類),并自動生成subdlg.h\.cpp檔案。

MFC 基礎知識:主對話框與子對話框(一)

注意:vc6中預設dialog的基類是cdialog,vs2012中dialog基類預設選擇是cdialogex(extend 擴充)。其中cdialogex繼承自cdialog,添加了一些功能:換背景圖檔、背景顔色。(後面還将設定子對話框的背景顔色)

4.在要調用該對話框的主對話框xxxdlg.cpp中引用子對話框類,即添加:

//引用子對話框類

#include"subdlg.h"

5.在xxxdlg.cpp中生成的按鈕函數onbnclickedbutton1()中添加調用子對話框的代碼。

    //執行個體自定義的子對話框類dlg

    csubdlgdlg;

    //設定子對話框背景顔色黃色

cdiologex中

    dlg.setbackgroundcolor(rgb(255,255,0));

    //domodal點選按鈕顯示相應對話框

    if(dlg.domodal()==idok)

    { }

6.運作如下圖:當點選主對話框的“子對話框”按鈕時,顯示一個黃色背景的子對話框。

MFC 基礎知識:主對話框與子對話框(一)

這樣主對話框調用子對話框的基本步驟就實作了,上圖中黃色的及為子對話框,當點選按鈕後會彈出該對話框.希望大家能了解mfc的這一基礎知識,同時下面這個部落格中介紹了主對話框調用子對話框的幾個步驟,友善大家學習:

<a target="_blank" href="http://blog.21ic.com/user1/7447/archives/2011/83411.html">http://blog.21ic.com/user1/7447/archives/2011/83411.html</a>

這裡要感謝很多部落格,它們讓我學到了很多知識,最後高手莫見笑,希望能幫助到大家吧!若有錯誤見諒.

(2013-6-8 夜2點 by:eastmount)