774
技術社區[雲棲]
MFC 基礎知識:主對話框與子對話框(一)
(僅供使用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()中添加調用子對話框的代碼。
voidCEditSetDlg::OnBnClickedButton1()
{
//實例自定義的子對話框類dlg
CSubDlgdlg;
//設置子對話框背景顏色黃色
CDiologEx中
dlg.SetBackgroundColor(RGB(255,255,0));
//DoModal點擊按鈕顯示相應對話框
if(dlg.DoModal()==IDOK)
{ }
}
6.運行如下圖:當點擊主對話框的“子對話框”按鈕時,顯示一個黃色背景的子對話框。
這樣主對話框調用子對話框的基本步驟就實現了,上圖中黃色的及為子對話框,當點擊按鈕後會彈出該對話框.希望大家能了解MFC的這一基礎知識,同時下麵這個博客中介紹了主對話框調用子對話框的幾個步驟,方便大家學習:
https://blog.21ic.com/user1/7447/archives/2011/83411.html
這裏要感謝很多博客,它們讓我學到了很多知識,最後高手莫見笑,希望能幫助到大家吧!若有錯誤見諒.
(2013-6-8 夜2點 By:Eastmount)
最後更新:2017-04-03 18:52:08