DLGTEMPLATEEX 結構

擴充對話方塊範本的開頭是 DLGTEMPLATEEX 標頭,描述對話方塊,並指定對話方塊中的控制項數目。 針對對話方塊中的每個控制項,擴充對話方塊範本有一個資料區塊,該區塊會使用 DLGITEMTEMPLATEEX 格式來描述控制項。

DLGTEMPLATEEX結構未定義于任何標準標頭檔中。 結構定義在這裡提供,以說明對話方塊的擴充範本格式。

語法

typedef struct {
  WORD      dlgVer;
  WORD      signature;
  DWORD     helpID;
  DWORD     exStyle;
  DWORD     style;
  WORD      cDlgItems;
  short     x;
  short     y;
  short     cx;
  short     cy;
  sz_Or_Ord menu;
  sz_Or_Ord windowClass;
  WCHAR     title[titleLen];
  WORD      pointsize;
  WORD      weight;
  BYTE      italic;
  BYTE      charset;
  WCHAR     typeface[stringLen];
} DLGTEMPLATEEX;

成員

dlgVer

類型: WORD

擴充對話方塊範本的版本號碼。 此成員必須設定為 1。

簽章

類型: WORD

指出範本是否為擴充對話方塊範本。 如果 簽章 0xFFFF,則這是擴充對話方塊範本。 在此情況下, dlgVer 成員會指定範本版本號碼。 如果簽章是0xFFFF以外的任何值,這是使用DLGTEMPLATE 和 DLGITEMTEMPLATE結構的標準對話方塊範本。

helpID

類型: DWORD

對話方塊視窗的說明內容識別碼。 當系統傳送WM_HELP訊息時,它會在HELPINFO結構的wCoNtextId成員中傳遞此值。

exStyle

類型: DWORD

延伸視窗樣式。 建立對話方塊時不會使用此成員,但使用對話方塊範本的應用程式可以使用它來建立其他類型的視窗。 如需值清單,請參閱 擴充視窗樣式

style

類型: DWORD

對話方塊的樣式。 這個成員可以是 視窗樣式值對話方塊樣式值的組合。

如果樣式包含DS_SETFONTDS_SHELLFONT對話方塊樣式,則擴充對話方塊範本的DLGTEMPLATEEX標頭包含四個額外的成員, (指向、細、體和樣) ,描述用於對話方塊之工作區和控制項中文字的字型。 可能的話,系統會根據這些成員中指定的值建立字型。 然後,系統會將 WM_SETFONT 訊息傳送至對話方塊,以及每個控制項,以提供字型的控制碼。

如需詳細資訊,請參閱 對話方塊字型

cDlgItems

類型: WORD

對話方塊中的控制項數目。

x

類型: short

對話方塊左上角的 x 座標,以對話方塊單位為單位。

y

類型: short

對話方塊左上角的 Y 座標,以對話方塊單位為單位。

殘雪

類型: short

對話方塊的寬度,以對話方塊單位為單位。

cy

類型: short

對話方塊的高度,以對話方塊單位為單位。

功能表

類型: sz_Or_Ord

16 位元素的可變長度陣列,可識別對話方塊的功能表資源。 如果這個陣列的第一個專案是0x0000,對話方塊沒有功能表,而且陣列沒有其他元素。 如果第一個專案是0xFFFF,陣列有一個額外的元素,指定可執行檔中功能表資源的序數值。 如果第一個專案具有任何其他值,則系統會將陣列視為 Null 終止的 Unicode 字串,以指定可執行檔中的功能表資源名稱。

windowClass

類型: sz_Or_Ord

16 位專案的可變長度陣列,可識別對話方塊的視窗類別。 如果陣列的第一個專案是0x0000,則系統會使用對話方塊的預先定義對話方塊類別,而且陣列沒有其他元素。 如果第一個專案是0xFFFF,則陣列有一個額外的元素,指定預先定義系統視窗類別的序數值。 如果第一個專案具有任何其他值,則系統會將陣列視為以 Null 終止的 Unicode 字串,指定已註冊之視窗類別的名稱。

title

類型: WCHAR[titleLen]

對話方塊的標題。 如果這個陣列的第一個專案是0x0000,則對話方塊沒有標題,而且陣列沒有其他元素。

pointsize

類型: WORD

對話方塊及其控制項中文字所使用的字型點大小。

只有當 樣式 成員指定 DS_SETFONTDS_SHELLFONT時,才會存在這個成員。

weight

類型: WORD

字型的粗細。 請注意,雖然這可以是LOGFONT結構的lfWeight成員所列的任何值,但使用的任何值都會自動變更為FW_NORMAL

只有當 樣式 成員指定 DS_SETFONTDS_SHELLFONT時,才會存在這個成員。

斜體

類型: BYTE

指出字型是否為斜體。 如果此值為 TRUE,則字型為斜體。

只有當 樣式 成員指定 DS_SETFONTDS_SHELLFONT時,才會存在這個成員。

字元集

類型: BYTE

要使用的字元集。 如需詳細資訊,請參閱LOGFONTlfcharset成員。

只有當 樣式 成員指定 DS_SETFONTDS_SHELLFONT時,才會存在這個成員。

字體

類型: WCHAR[stringLen]

字型的字型字型名稱。

只有當 樣式 成員指定 DS_SETFONTDS_SHELLFONT時,才會存在這個成員。

備註

您可以使用擴充對話方塊範本,而不是 CreateDialogIndirectParamDialogBoxIndirectParamCreateDialogIndirectDialogBoxIndirect 函式中的標準對話方塊範本。

在擴充對話方塊範本中的 DLGTEMPLATEEX 標頭之後,是描述對話方塊控制項的一或多個 DLGITEMTEMPLATEEX 結構。 DLGITEMTEMPLATEEX結構的cDlgItems成員會指定範本中後續的 DLGITEMTEMPLATEEX結構數目。

範本中的每個 DLGITEMTEMPLATEEX 結構都必須對齊 DWORD 界限。 如果樣式成員指定DS_SETFONTDS_SHELLFONT樣式,則第一個DLGITEMTEMPLATEEX結構會在樣字串之後的第一個DWORD界限開始。 如果未指定這些樣式,則第一個結構會在標題字串之後的第一個DWORD界限開始。

功能表windowClass標題字樣陣列必須在WORD界限上對齊。

如果您在 功能表windowClasstitle字樣 陣列中指定字元字串,則必須使用 Unicode 字串。 使用 MultiByteToWideChar 函 式,從 ANSI 字串產生這些 Unicode 字串。

xycxcy成員會以對話方塊單位指定值。 您可以使用 MapDialogRect 函式,將這些值轉換成螢幕單位, (圖元) 。

規格需求

需求
最低支援的用戶端
Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器
Windows 2000 Server [僅限桌面應用程式]

另請參閱

參考

CreateDialogIndirect

CreateDialogIndirectParam

DialogBoxIndirect

DialogBoxIndirectParam

DLGITEMTEMPLATEEX

MapDialogRect

WM_SETFONT

概念

對話方塊

其他資源

LOGFONT

MultiByteToWideChar