共用方式為


CreateDialogIndirectParamW 函式 (winuser.h)

從記憶體中的對話框範本建立無模式對話框。 在顯示對話方塊之前,函式會將應用程式定義值傳遞至對話框程式,做為 WM_INITDIALOG 訊息的 lParam 參數。 應用程式可以使用此值來初始化對話框控制件。

語法

HWND CreateDialogIndirectParamW(
  [in, optional] HINSTANCE       hInstance,
  [in]           LPCDLGTEMPLATEW 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 標頭會根據 UNICODE 預處理器常數的定義,將 CreateDialogIndirectParam 定義為自動選取此函式的 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 中引進)

另請參閱

概念

CreateDialog

CreateDialogIndirect

CreateDialogParam

CreateWindowEx

DLGITEMTEMPLATE

DLGITEMTEMPLATEEX

DLGTEMPLATE

DLGTEMPLATEEX

DestroyWindow

對話框

DialogProc

MultiByteToWideChar

其他資源

參考

ShowWindow

WM_INITDIALOG

WM_SETFONT