MFC建立模態對話方塊和非模態對話方塊

2021-07-10 10:10:23 字數 1189 閱讀 1997

(以下主對話方塊類為 maindlg)

一、建立模態對話方塊:

1.在資源檢視裡插入dialog,對新建的對話方塊進行更改屬性新增需要的控制項等操作。

2.在新建的對話方塊中右鍵新增類,新增新的對話方塊類cmodeldlg。

3.在maindlg.h中包含modeldlg的標頭檔案:#include "cmodeldlg.h"。

4.使用如下方式開啟模態對話方塊:

cmodeldlg dlg;        			// 定義對話方塊類cmodeldlg的物件dlg   

int_ptr nresponse = dlg.domodal(); // 彈出對話方塊dlg,並將domodal函式的返回值)賦值給nresponse

if (nresponse == idok) // 判斷返回值是否為ok

else if (nresponse == idcancel) // 判斷返回值是否為cancel

二、建立非模態對話方塊:

1.在資源檢視裡插入dialog,對新建的對話方塊進行更改屬性新增需要的控制項等操作。

2.在新建的對話方塊中右鍵新增類,新增新的對話方塊類cmodelessdlg。

3.在maindlg.h中包含cmodelessdlg的標頭檔案:#include "cmodelessdlg.h"。

4.在maindlg.h中為cmaindlg類新增private成員變數cmodelessdlg  *m_pmodelessdlg;

6.在maindlg類的建構函式中初始化成員變數m_pmodelessdlg=null;

6.使用如下方式開啟模態對話方塊:

if (null == m_pmodelessdlg)// 如果指標變數m_pmodelessdlg的值為null,則對話方塊還未建立,需要動態建立   

// 顯示非模態對話方塊

m_pmodelessdlg->showwindow(sw_show);

7.在cmaindlg類的解析函式中按如下方式來銷毀視窗釋放視窗指標

1)在cmaindlg.h中新增析構函式的宣告~cmaindlg();

2)在cmaindlg.cpp中定義析構函式:

cmaindlg::~cmaindlg()

}

MFC筆記 建立模態對話方塊和非模態對話方塊

建立模態對話方塊 新建乙個對話方塊,對話方塊生成類。在要載入對話方塊的類前新增標頭檔案 生成模態對話方塊的地方 ctest ctrst ctest.domodal 建立非模態對話方塊 新建乙個對話方塊,生成類。要載入的對話方塊類新增成員變數 csweepfreq m sweepferq 類名,變數名...

MFC模態與非模態對話方塊

1.1模態對話方塊 model dialog box 當模態對話方塊顯示時,程式會暫停執行,直到關閉這個模態對話方塊之後,才能執行程式中的其他任務。1.2非模態對話方塊 modeless dialog box 當非模態對話方塊顯示時,執行轉而執行程式中的其他任務,而不用關閉這個對話方塊。2.1模態對...

MFC模態與非模態對話方塊

1.1模態對話方塊 model dialog box 當模態對話方塊顯示時,程式會暫停執行,直到關閉這個模態對話方塊之後,才能執行程式中的其他任務。1.2非模態對話方塊 modeless dialog box 當非模態對話方塊顯示時,執行轉而執行程式中的其他任務,而不用關閉這個對話方塊。2.1模態對...