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)

另請參閱

概念

CreateDialog

CreateDialogIndirect

CreateDialogParam

CreateWindowEx

DLGITEMTEMPLATE

DLGITEMTEMPLATEEX

DLGTEMPLATE

DLGTEMPLATEEX

DestroyWindow

對話方塊

DialogProc

MultiByteToWideChar

其他資源

參考

ShowWindow

WM_INITDIALOG

WM_SETFONT