CreateDialogIndirectParamA 函式 (winuser.h)
從記憶體中的對話方塊範本建立無強制回應對話方塊。 在顯示對話方塊之前,函式會將應用程式定義的值傳遞至對話方塊程式,做為WM_INITDIALOG訊息的lParam參數。 應用程式可以使用此值來初始化對話方塊控制項。
語法
HWND CreateDialogIndirectParamA(
[in, optional] HINSTANCE hInstance,
[in] LPCDLGTEMPLATEA lpTemplate,
[in, optional] HWND hWndParent,
[in, optional] DLGPROC lpDialogFunc,
[in] LPARAM dwInitParam
);
參數
[in, optional] hInstance
類型: HINSTANCE
包含對話方塊範本之模組的控制碼。 如果此參數為 Null,則會使用目前的可執行檔。
[in] lpTemplate
類型: LPCDLGTEMPLATE
CreateDialogIndirectParam範本會使用 來建立對話方塊。 對話方塊範本是由描述對話方塊的標頭所組成,後面接著一或多個描述對話方塊中每個控制項的其他資料區塊。 範本可以使用標準格式或擴充格式。
在標準範本中,標頭是 DLGTEMPLATE 結構,後面接著額外的可變長度陣列。 每個控制項的資料都包含 DLGITEMTEMPLATE 結構,後面接著額外的可變長度陣列。
在擴充對話方塊範本中,標頭會使用 DLGTEMPLATEEX 格式,而控制項定義則使用 DLGITEMTEMPLATEEX 格式。
在 CreateDialogIndirectParam傳回之後,您可以釋出範本,它只會用來開始對話方塊。
[in, optional] hWndParent
類型: HWND
擁有對話方塊之視窗的控制碼。
[in, optional] lpDialogFunc
類型: DLGPROC
對話方塊程式的指標。 如需對話方塊程式的詳細資訊,請參閱 DialogProc。
[in] dwInitParam
類型: LPARAM
要傳遞至WM_INITDIALOG訊息之 lParam參數中對話方塊的值。
傳回值
類型: HWND
如果函式成功,傳回值就是對話方塊的視窗控制碼。
如果函式失敗,傳回值為 Null。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
備註
CreateDialogIndirectParam函式會使用CreateWindowEx函式來建立對話方塊。 CreateDialogIndirectParam 接著會將 WM_INITDIALOG 訊息傳送至對話方塊程式。 如果範本指定 DS_SETFONT 或DS_SHELLFONT樣式,函式也會將 WM_SETFONT 訊息傳送至對話方塊程式。 如果範本指定 WS_VISIBLE 樣式,函式會顯示對話方塊。 最後, CreateDialogIndirectParam 會將視窗控制碼傳回對話方塊。
CreateDialogIndirectParam傳回之後,您可以使用ShowWindow函式來顯示對話方塊, (如果尚未顯示) 。 若要終結對話方塊,請使用 DestroyWindow 函式。 若要支援鍵盤流覽和其他對話方塊功能,對話方塊的訊息迴圈必須呼叫 IsDialogMessage 函 式。
在標準對話方塊範本中, DLGTEMPLATE 結構和每個 DLGITEMTEMPLATE 結構都必須在 DWORD 界限上對齊。 在 DLGITEMTEMPLATE結構後面的建立資料陣列也必須對齊DWORD界限。 範本中的所有其他可變長度陣列都必須在 WORD 界限上對齊。
在擴充的對話方塊範本中, DLGTEMPLATEEX 標頭和每個 DLGITEMTEMPLATEEX 控制項定義都必須在 DWORD 界限上對齊。 建立資料陣列,如果有的話, 在 DLGITEMTEMPLATEEX 結構之後也必須對齊 DWORD 界限。 範本中的所有其他可變長度陣列都必須在 WORD 界限上對齊。
對話方塊範本中的所有字元字串,例如對話方塊和按鈕的標題,都必須是 Unicode 字串。
注意
winuser.h 標頭會將 CreateDialogIndirectParam 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例。
規格需求
最低支援的用戶端 | Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | winuser.h (包含 Windows.h) |
程式庫 | User32.lib |
Dll | User32.dll |
API 集合 | ext-ms-win-ntuser-dialogbox-l1-1-0 (在 Windows 8) |
另請參閱
概念
其他資源
參考