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

來源:互聯網
上載者:User

(僅供使用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的這一基礎知識,同時下面這個部落格中介紹了主對話方塊調用子對話方塊的幾個步驟,方便大家學習:http://blog.21ic.com/user1/7447/archives/2011/83411.html

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

(2013-6-8 夜2點 By:Eastmount)

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.