DialogBoxIndirectParamA 函式 (winuser.h)
從記憶體中的對話框範本建立強制響應對話框。 在顯示對話方塊之前,函式會將應用程式定義值傳遞至對話框程式,做為 WM_INITDIALOG 訊息的 lParam 參數。 應用程式可以使用此值來初始化對話框控制件。
語法
INT_PTR DialogBoxIndirectParamA(
[in, optional] HINSTANCE hInstance,
[in] LPCDLGTEMPLATEA hDialogTemplate,
[in, optional] HWND hWndParent,
[in, optional] DLGPROC lpDialogFunc,
[in] LPARAM dwInitParam
);
參數
[in, optional] hInstance
類型:HINSTANCE
建立對話框之模組的句柄。
[in] hDialogTemplate
類型:LPCDLGTEMPLATE
DialogBoxIndirectParam 用來建立對話框的範本。 對話框範本是由描述對話框的標頭所組成,後面接著一或多個描述對話框中每個控件的其他數據區塊。 範本可以使用標準格式或擴充格式。
在對話框的標準範本中,標頭是 DLGTEMPLATE 結構,後面接著其他可變長度陣列。 每個控件的數據都包含一個 DLGITEMTEMPLATE 結構,後面接著額外的可變長度數位。
在對話框的延伸範本中,標頭會使用 DLGTEMPLATEEX 格式,而控件定義則使用 DLGITEMTEMPLATEEX 格式。
[in, optional] hWndParent
類型:HWND
擁有對話框之視窗的句柄。
[in, optional] lpDialogFunc
類型:DLGPROC
對話框程式的指標。 如需對話框程式的詳細資訊,請參閱 DialogProc。
[in] dwInitParam
類型:LPARAM
要傳遞至 WM_INITDIALOG 訊息之 lParam 參數中的對話框的值。
傳回值
類型:INT_PTR
如果函式成功,傳回值會是呼叫用來終止對話框之 EndDialog 函式中指定的 nResult 參數。
如果函式失敗,因為 hWndParent 參數無效,則傳回值為零。 在此案例中,函式會傳回零,以便與舊版 Windows 相容。 如果函式因任何其他原因而失敗,則傳回值為 –1。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
言論
DialogBoxIndirectParam 函式會使用 CreateWindowEx 函式來建立對話框。 DialogBoxIndirectParam 然後將 WM_INITDIALOG 訊息傳送至對話框程式。 如果範本指定 DS_SETFONT 或DS_SHELLFONT樣式,函式也會將 WM_SETFONT 訊息傳送至對話框程式。 函式會顯示對話框(不論範本是否指定 WS_VISIBLE 樣式)、停用擁有者視窗,並啟動自己的訊息循環來擷取和分派對話框的訊息。
當對話框程式呼叫
在標準對話框範本中,DLGTEMPLATE 結構,而且每個 DLGITEMTEMPLATE 結構都必須對齊 DWORD 界限。 DLGITEMTEMPLATE 結構的建立數據陣列也必須對齊 DWORD 界限。 範本中所有其他可變長度陣列都必須對齊 word 界限。
在擴充的對話框範本中,DLGTEMPLATEEX 標頭,而且每個 DLGITEMTEMPLATEEX 控件定義都必須對齊 DWORD 界限。 建立數據陣列,如果有的話,在 DLGITEMTEMPLATEEX 結構之後,也必須對齊 DWORD 界限。 範本中所有其他可變長度陣列都必須對齊 word 界限。
對話框範本中的所有字元字串,例如對話框和按鈕的標題,必須是 Unicode 字串。
注意
winuser.h 標頭會根據 UNICODE 預處理器常數的定義,將 DialogBoxIndirectParam 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的
要求
要求 | 價值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
支援的最低伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平臺 | 窗戶 |
標頭 | winuser.h (包括 Windows.h) |
連結庫 | User32.lib |
DLL | User32.dll |
API 集 | ext-ms-win-ntuser-dialogbox-l1-1-0 (在 Windows 8 中引進) |
另請參閱
概念
參考