模態對話方塊簡單好用,用它傳遞資料時,直接使用domodal(), 根據按鈕情況 進行資料傳遞:
如下例所示:
cmydlg dlg;
dlg.i=0; // 初始化資料
dlg.j=0;
if(dlg.domodal()==idok)
但是,這種傳遞僅能傳遞模態對話方塊中最後設定好的資料,而不能傳遞實時資料,比如,模態對話方塊中有乙個滾動條,主視窗需要實時獲得滾動條的值,這時用這種方法便無法獲取實時值。
怎麼才能將滾動條的實時值傳遞給主視窗呢?
我採用的方法是自定義訊息:每當滾動條發生改變時,往主視窗傳送訊息,將值傳遞給主視窗。
1 stdafx.h中自定義訊息
#define wm_angle_value (wm_user+100) //從模態對話方塊中 傳送角度值
2 1) mainfrm.h中宣告訊息對映函式
afx_msg lresult onangle(wparam wparam,lparam lparam);
2) mainfrm.cpp定義訊息對映函式,並將訊息中的引數傳遞給相應的視窗
lresult cmainframe::onangle(wparam wparam,lparam lparam)
3) mainfrm.cpp中設定訊息響應
on_message(wm_angle_value,onangle)
3
在模態對話方塊中傳送訊息
從模態對話方塊和非模態對話方塊理解MFC
1 非模態 雖然引自網路,但是寫的很好,很清晰。無模式對話方塊與有模式對話方塊不同的是在建立後其他視窗都可以繼續接收使用者輸入,因此無模式對話方塊有些類似乙個彈出視窗。建立 無模式對話方塊需要呼叫 bool cdialog create uint nidtemplate,cwnd pparentwn...
模態對話方塊 非模態對話方塊 標準對話方塊 檔案對話方塊
模態對話方塊 qdialog 非模態對話方塊 qdialog 標準對話方塊 關於對話方塊 問題對話方塊等 qmessagebox 檔案對話方塊 qfiledialog 標準對話方塊還有 qcolordialog 選擇顏色 qfiledialog 選擇檔案或者目錄 qfontdialog 選擇字型 q...
模態對話方塊與非模態對話方塊
1.對話方塊分類 按工作方式不同,可將對話方塊分成兩類 模態對話方塊 modal 在關閉模態對話方塊之前,程式不能進行其他工作 如一般的 開啟檔案 對話方塊 非模態對話方塊 modeless 非模態對話方塊開啟後,程式仍然能夠進行其他工作 如一般的 查詢與替換 對話方塊 2.對話方塊建立 模態對話方...