一、api:
非模態模態對話畫框:
1.建立對話方塊前都要先天件對話方塊資源
2.建立非模態對話方塊,先用
hwnd createdialog(hinstance hinstance,
lpctstr lptemplate,
hwnd hwndparent,
dlgproc lpdialogfunc
);函式功能:createdialog巨集從乙個對話方塊模板資源建立乙個無模式的對話方塊,
creatediaog巨集使用createdialogparam函式
hlnstance:標識模組事例,該模組的可執行檔案含有對話方塊模板。
ptemplate: 標識對話方塊模板,此引數或是指向乙個以結尾的字串指標,該字串指定對話方塊
模板名,或是指定對話方塊模板的資源識別符號的乙個整型值。如果此引數指定了乙個
資源識別符號,則它的高位字一定為零,且低位字一定含有識別符號,一定用
makeintresource巨集來建立此值。
hwndparent: 標識擁有對話方塊的視窗。
lpdialogfunc: 指向對話方塊應用程式的指標。有關更多的對話方塊應用程式的指標,參見
dialogproc。
返回值:如果函式呼叫成功,則返回值為指向對話方塊的控制代碼;如果函式呼叫失敗,則返回值為
null。若想獲得更多的錯誤資訊,可呼叫getlasterror函式
3.用showwindow()函式顯示對話方塊,模態對話方塊不用呼叫顯示函式;
4.模態對話方塊的銷毀要呼叫destroywindow函式來清除對話方塊;模態對話方塊不用
模態對話方塊:
1. dialogbox(hinstance hinstance,
lpctstr lptemplate,
hwnd hwndparent,
dlgproc lpdialogfunc
);2.enddialog函式中止模態的對話方塊
enddialog函式並不立即清除對話方塊。而是設定乙個標誌,並且允許對話方塊應用程式把
控制權返回系統。系統在試圖從應用程式佇列檢索下乙個訊息之前檢測標誌。如果已經設定了標
誌則系統中止訊息迴圈,清除對話方塊,且用nresult中的值作為從建立對話方塊的函式中返回的值。
二、mfc:
1.建立模態對話方塊,呼叫對話方塊類的domodal()函式
2.銷毀對話方塊 呼叫enddialog()銷毀模態對話方塊,對於非模態對話方塊,這個函式只能使對話方塊不
可見
3.非模態對話方塊的建立呼叫create()
4.非模態對話方塊的銷毀要呼叫,destrywindow()函式銷毀視窗和結束訊息迴圈
5.預設對話方塊上新增的按鈕,呼叫的銷毀視窗的函式是enddialog(),所以對於模態對話方塊要改寫
。
mfc建立隱藏對話方塊
通常有需求mfc主對話方塊建立乙個子對話方塊 彈出式的對話方塊 但是彈出對話方塊必須要隱藏起來,等需要顯示的時候才顯示。嘗試過在建立彈出對話方塊後呼叫showwindow sw hide 函式實現,但是介面始終會閃爍一下。網上找到的許多資料都說在子對話方塊的oninitdialog 函式中新增sho...
MFC建立模態對話方塊和非模態對話方塊
以下主對話方塊類為 maindlg 一 建立模態對話方塊 1.在資源檢視裡插入dialog,對新建的對話方塊進行更改屬性新增需要的控制項等操作。2.在新建的對話方塊中右鍵新增類,新增新的對話方塊類cmodeldlg。3.在maindlg.h中包含modeldlg的標頭檔案 include cmode...
mfc 子對話方塊控制父對話方塊 MFC對話方塊構架程式
遺憾的是 從來沒有被堅定選擇過,就像是,他只是剛好需要,你只是剛好在。網易雲熱評 一 對話方塊架構分類 1 模式對話方塊,彈出來不能進行其他操作 2 無模式對話方塊,彈出來後可以進行其他操作 二 新建win32應用程式 模式對話方塊 1 建立 2 修改屬性 3 新增dialog資源 4 包含標頭檔案...