c 模態對話方塊從內部退出 c 非模態對話方塊問題

2021-10-17 06:27:21 字數 1299 閱讀 5939

函式功能:該函式根據對話方塊模板資源建立乙個模態的對話方塊。在顯示對話方塊之前,函式把乙個應用程式定義的值作為wm_initdialog訊息的iparam引數傳到對話方塊過程,應用程式可用此值來初始化對話方塊控制。

函式原型:int dialogboxparam(hinstance hlnstance,lpctstr iptemplatename,hwnd hwndparent, dlgproc ipdialogfunc,lparam dwlnitparam);

引數:hlnstance:標識乙個模組的事例,該模組的可執行檔案含有對話方塊模板。

iptemplatename:標識對話方塊模板。此引數可以指向乙個以null結尾的字串的指標,該字串指定對話方塊模扳名,或是指定對話方塊模板的資源識別符號的乙個整型值。如果此引數指定了乙個資源識別符號,則它的高位字一定為零,且低位字一定含有識別符號。一定用makeintresourde巨集指令建立此值。

hwndparent:指定擁有對話方塊的視窗。

ipdirlogfunc:指向對話方塊過程的指標。有關更詳細的關於對話方塊過程的資訊,請參見dialogproc。

dwlnitaram:指定傳遞到wm_initdialog訊息的iparam引數中的對話方塊過程的值。

返回值:如果函式呼叫成功則返回值為在對函式enddialog的呼叫中的nresult引數,該enddialog函式用於中止對話方塊。如果函式呼叫失敗,則返回值為c1。若想獲得錯誤資訊,請呼叫getlasterror函式。

備註:dialogboxparam函式用createwindowex函式建立對話方塊。然後把乙個wm_initdialogg訊息傳遞到對話方塊過程。如果模板指定ds_setfont型別,dialogboxparam函式把乙個 wm_setfont訊息傳遞到對話方塊過程。(不管模板是否指定ws_visible型別),函式顯示對話方塊使擁有視窗失效,且為對話方塊啟動它本身的訊息迴圈來檢取和傳遞訊息。當對話方塊應用程式呼叫enddialog函式時,dialogboxparam函式清除對話方塊中止訊息迴圈;使擁有視窗生效(如果以前有效),且返回函式enddialog的呼叫中的nresult引數。windows 95和以後版本:系統可支援每個對話方塊模板最多為255個控制。為把多於255個控制放入對話方塊,可以在wm_initdlalog訊息處理器中建立控制,而不是把它們放入模板中。windows ce:iptemplatename引數指向的對話方塊模板中dlgtemplate結構並不支援所有的型別。

速查:windows nt:3.1及以上版本:windows:95及以上版本;windows ce:1.0及以上版本;標頭檔案:winuser.h;庫檔案:user32.lib:unicode:在windows nt上實現為unicode和ansi兩種版本。

模態對話方塊與非模態對話方塊

1.對話方塊分類 按工作方式不同,可將對話方塊分成兩類 模態對話方塊 modal 在關閉模態對話方塊之前,程式不能進行其他工作 如一般的 開啟檔案 對話方塊 非模態對話方塊 modeless 非模態對話方塊開啟後,程式仍然能夠進行其他工作 如一般的 查詢與替換 對話方塊 2.對話方塊建立 模態對話方...

模態對話方塊和非模態對話方塊

模態對話方塊和非模態對話方塊的區別 在這裡我就說的比較通俗易懂了,就是當你開啟乙個模態對話方塊時,你的焦點不能轉移到程式的其他視窗上,也就是你只能先響應模態對話方塊,才能進行成下面的操作。而非模態對話方塊則相反,你可以不用管它,照常能夠將其他視窗啟用。建立模態對話方塊,主要是應用對話方塊的domod...

模態對話方塊和非模態對話方塊

模態對話方塊 關閉才能返回,非模態 不關閉就能返回 在資源裡新建立二個對話方塊 為新的對話方塊建立乙個類 在最原始的對話方塊函式的標頭檔案將上述兩個新新增的標頭檔案加進去,對模態按鈕進行程式設計 void cdemo11dlg onbnclickedbutton1 對非模態按鈕進行程式設計 void...