mfc 子對話方塊控制父對話方塊 MFC對話方塊構架程式

2021-10-17 10:36:53 字數 2533 閱讀 9483

遺憾的是:從來沒有被堅定選擇過,就像是,他只是剛好需要,你只是剛好在。。。

----  網易雲熱評

一、對話方塊架構分類

1、模式對話方塊,彈出來不能進行其他操作

2、無模式對話方塊,彈出來後可以進行其他操作

二、新建win32應用程式(模式對話方塊)

1、建立

2、修改屬性

3、新增dialog資源

4、包含標頭檔案

#include #include "resource.h"
5、定義乙個類,管理對話方塊資源

6、domodal()函式做的事

1)查詢,載入並鎖定對話方塊資源

2)將父視窗設定為不可用狀態

3)建立無模式對話方塊

4)進入訊息迴圈

5)隱藏無模式對話方塊

6)將父視窗設定為可用狀態

7)銷毀無模式對話方塊

7、模式對話方塊的關閉,通過虛函式處理

class cmydlg :public cdialog        virtual void onok();       virtual void oncancel();};begin_message_map(cmydlg,cdialog)       end_message_map()void cmydlg::onok() void cmydlg::oncancel()
8、初始化訊息

類內宣告

virtual bool oninitdialog();
類外實現

bool cmydlg::oninitdialog()
9、執行結果:先彈窗哎呦不錯,再進入主介面

三、無模式對話方塊

1、新增對話方塊資源

2、定義乙個類,管理對話方塊資源

3、呼叫cdialog::create 建立無模式對話方塊

cmydlg* pdlg = new cmydlg;       m_pmainwnd = pdlg;       pdlg->create(idd_dialog1);       pdlg->showwindow(sw_show);
4、呼叫cdialog::showwindow

5、無模式對話方塊的關閉,利用 destroywindow 函式。

void cmydlg::onok( )void cmydlg::oncancel( )
6、無模式對話方塊的初始化,利用 cdialog::oninitdialog 虛函式

四、控制項和成員變數繫結的使用

1、定義乙個控制項,編輯框控制項

2、定義乙個成員變數

cstring stredit;
3、重寫基類的乙個成員虛函式 dodataexchange,內部呼叫一系列 ddx_***函式,實現繫結

類內宣告

virtual void dodataexchange(cdataexchange* pdx);
類外實現

void cmydlg::dodataexchange(cdataexchange* pdx)
實現按鈕命令

on_command(idc_button1, onbtn1 )    on_command(idc_button2, onbtn2 )
類內宣告命令函式

afx_msg void onbtn1( );    afx_msg void onbtn2( );
4、當需要實現資料交換,呼叫updatedata函式即可。

updatedata(true) - 將控制項資料儲存到成員變數

updatedata(false) -將成員變數中的資料顯示到控制項

類外實現

void cmydlg::onbtn1( )void cmydlg::onbtn2( )
5、執行結果

MFC在父對話方塊中嵌入子對話方塊

一 對話方塊中顯示對話方塊的方法 1 首先建立要在對話方塊裡顯示的那個對話方塊,命名為 idd dialog status。設定這個對話方塊的屬性 1 style 選擇 child 中文版 樣式 選擇 下層 2 border 為 none 中文版 邊框 選擇 無 2 為了顯示時能夠準確定位,我們可以...

mfc父對話方塊調出子對話方塊顯示資料的問題

2008 11 24 21 40 父對話方塊調出子對話方塊後,子對話方塊中定義了乙個cedit型別的變數,對cedit賦值後顯示不出來,希望高手指點一下。void cmy2008dlg onpaihang 這樣行不行,好像update不能用在cedit裡面吧?分享到 2008 11 24 22 00...

MFC 對話方塊

1 建立對話方塊模板,設定對話方塊屬性 cadditionddlg 主對話方塊類 顯示的主要介面 addition的資源樹 4個子項 dialog 對話方塊 含有2個對話方塊模板 id為idd aboutbox 關於對話方塊模板 idd addtion dlalog 主對話方塊模板 lcon 圖示 ...