(僅供使用vs mfc初學者學習,高手莫見笑)
在mfc中通常會使用點選一個按鈕,彈出一個子對話框的基礎知識,這些都是學習mfc的基礎知識,也是非常重要的知識,這裡我就簡單的講講這些知識。
1.檔案-建立項目(我設定的過程名為:editset)-mfc應用程式-該頁面使用“基于對話框”-完成即可.
2.在“資源視圖”中打開dialog對話框,删除“todo:在此處放置對話框控件”和“确定”、“退出”按鈕。
3.在工具箱中添加一個按鈕button控件和一個編輯框edit control控件。可右鍵控件設定其屬性。其id我使用的就是預設的:idc_button1、idc_edit1.其中設定按鈕的caption為“子對話框”,即是設定其名稱。
4.運作其顯示的結果如下圖所示:
1.在“資源視圖”中添加一個新的對話框。右鍵dialog,選擇“添加資源”;
2.在彈出的對話框中輕按兩下dialog,即實作建立一個對話框。預設名字為idd_dialog1;
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檔案。
注意: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的這一基礎知識,同時下面這個部落格中介紹了主對話框調用子對話框的幾個步驟,友善大家學習:
<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)