DialogBox

DialogBox

DialogBox是一個Windows API函數。它的作用是從一個對話框資源中創建一個模態對話框。該函數直到指定的回調函數通過調用EndDialog函數中止模態的對話框才能返回控制。該函數通過調用DialogBoxParam函數來實現。

參數


hlnstance
標識一個模塊的事例該模塊的可執行文件含有對話框模板。
IpTemplate
標識對話框模板。此參數可以是指向一個以NULL結尾的字元串的指針,該字元串指定對話框模板名,或是指定對話框模板的資源標識符中的一個整型值。如果此參數指定了一個資源標識符則它的高位字一定為零,且低位字一定含有標識符。一定用MAKEINTRESOURCE宏指令創建此值。
hWndParent
指定擁有對話框的窗口。
IpDialogFunc
指向對話框過程的指針。有關更詳細的關於對話框過程的信息,請參見DialogProc

返回值


如果函數調用成功,則返回值為在對函數EndDialog的調用中的nResult參數.該函數用於中止對話框。如果函數調用失敗,則返回值為-1。若想獲得更多的錯誤信息,請調用GetLastError函數。

備註


DialogBox宏用CreateWindowEx函數創建對話框。DialogBox函數然後把一個WM_INITDIALOG消息(和一個WM-SETFONT消息,如果模板指定DS_SETFONT類型)傳遞到對話框過程。不管模板是否指定WS_VISIBLE類型,函數顯示對話框,並且使擁有該對話框的窗口(也稱屬主窗口)失效,且為對話框啟動它本身的消息循環來檢索和傳遞消息。
當對話框應用程序調用EndDialog函數時,DialogBox函數清除對話框戶止消息循環,使屬主窗口生效(如果以前有效),且返回函數EndDialog調用中的nReSUlt參數。
Windows 95和以後版本:系統可支持每個對話框模板中最多255個控制。為把大於255個的控制放入對話框,需要在WM_INITDIALOG消息處理器中創建控制,而不是把他們放入模板中。

需求


Windows CE:lpTemplateName參數指向的對話框模板中DLGTEMPLATE結構並不支持所有的類型。
DLL最低版本user32.dll
頭文件在Winuser.h中聲明,包含於Windows.h。
庫文件User32.lib
操作系統最低版本Windows 95, Windows NT 3.1
Unicode以ANSI和Unicode版本實現。