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_SETFONT或DS_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_SETFONT 或 DS_SHELLFONT時,才會存在這個成員。
-
weight
-
類型: WORD
-
字型的粗細。 請注意,雖然這可以是LOGFONT結構的lfWeight成員所列的任何值,但使用的任何值都會自動變更為FW_NORMAL。
只有當 樣式 成員指定 DS_SETFONT 或 DS_SHELLFONT時,才會存在這個成員。
-
斜體
-
類型: BYTE
-
指出字型是否為斜體。 如果此值為 TRUE,則字型為斜體。
只有當 樣式 成員指定 DS_SETFONT 或 DS_SHELLFONT時,才會存在這個成員。
-
字元集
-
類型: BYTE
-
要使用的字元集。 如需詳細資訊,請參閱LOGFONT的lfcharset成員。
只有當 樣式 成員指定 DS_SETFONT 或 DS_SHELLFONT時,才會存在這個成員。
-
字體
-
類型: WCHAR[stringLen]
-
字型的字型字型名稱。
只有當 樣式 成員指定 DS_SETFONT 或 DS_SHELLFONT時,才會存在這個成員。
備註
您可以使用擴充對話方塊範本,而不是 CreateDialogIndirectParam、 DialogBoxIndirectParam、 CreateDialogIndirect和 DialogBoxIndirect 函式中的標準對話方塊範本。
在擴充對話方塊範本中的 DLGTEMPLATEEX 標頭之後,是描述對話方塊控制項的一或多個 DLGITEMTEMPLATEEX 結構。 DLGITEMTEMPLATEEX結構的cDlgItems成員會指定範本中後續的 DLGITEMTEMPLATEEX結構數目。
範本中的每個 DLGITEMTEMPLATEEX 結構都必須對齊 DWORD 界限。 如果樣式成員指定DS_SETFONT或DS_SHELLFONT樣式,則第一個DLGITEMTEMPLATEEX結構會在字樣字串之後的第一個DWORD界限開始。 如果未指定這些樣式,則第一個結構會在標題字串之後的第一個DWORD界限開始。
功能表、windowClass、標題和字樣陣列必須在WORD界限上對齊。
如果您在 功能表、 windowClass、 title和 字樣 陣列中指定字元字串,則必須使用 Unicode 字串。 使用 MultiByteToWideChar 函 式,從 ANSI 字串產生這些 Unicode 字串。
x、y、cx和cy成員會以對話方塊單位指定值。 您可以使用 MapDialogRect 函式,將這些值轉換成螢幕單位, (圖元) 。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows 2000 Server [僅限桌面應用程式] |