API和MFC建立對話方塊

2021-06-08 12:41:43 字數 1579 閱讀 3707

一、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 包含標頭檔案...