DLGTEMPLATE 結構 (winuser.h)

定義對話框的維度和樣式。 這個結構一律是對話框的標準範本中的第一個,也會指定對話框中的控件數目,因此會指定範本中的後續 DLGITEMTEMPLATE 結構數目。

語法

typedef struct {
  DWORD style;
  DWORD dwExtendedStyle;
  WORD  cdit;
  short x;
  short y;
  short cx;
  short cy;
} DLGTEMPLATE;

成員

style

類型: DWORD

對話框的樣式。 這個成員可以是 窗口樣式值 的組合 (,例如 WS_CAPTIONWS_SYSMENU) 和 對話框樣式 (值 的組合,例如 DS_CENTER) 。

如果樣式成員包含 DS_SETFONT 樣式,對話框範本的標頭會包含其他數據,指定要用於工作區和對話框控件中文字的字型。 字型數據會從標題陣列後面的 WORD 界限開始。 字型數據會指定 16 位的點大小值和 Unicode 字型名稱字串。 可能的話,系統會根據指定的值建立字型。 然後,系統會將 WM_SETFONT 訊息傳送至對話方塊,以及每個控件,以提供字型的句柄。 如果未指定 DS_SETFONT ,對話框範本就不會包含字型數據。

DLGTEMPLATE 標頭不支援DS_SHELLFONT樣式。

dwExtendedStyle

類型: DWORD

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

cdit

類型: WORD

對話框中的項目數。

x

類型: short

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

y

類型: short

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

cx

類型: short

對話框的寬度,以對話框單位為單位。

cy

類型: short

對話框的高度,以對話框單位為單位。

備註

在對話框的標準範本中, DLGTEMPLATE 結構一律緊接著三個可變長度陣列,指定對話框的功能表、類別和標題。 指定DS_SETFONT樣式時,這些數位後面也會接著指定點大小的16位值,以及另一個指定字樣名稱的可變長度陣列。 每個數位都包含一或多個16位元素。 功能表、類別、標題和字型數位必須對齊 WORD 界限。

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

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

在類別陣列之後是標題陣列,指定包含對話框標題的Null終止 Unicode 字串。 如果這個陣列的第一個專案是0x0000,則對話框沒有標題,而且陣列沒有其他元素。

16 位的點大小值和字樣數位遵循標題陣列,但只有在 樣式 成員指定DS_SETFONT樣式時。 點大小值會指定要用於對話方塊及其控件中文字之字型的點大小。 字樣陣列是以 Null 結尾的 Unicode 字串,指定字型的字型名稱。 指定這些值時,系統會建立具有指定大小和字型的字型, (盡可能) ,並將 WM_SETFONT 訊息傳送至對話框程式和控件視窗程式,因為它會建立對話框和控件。

在標準對話框範本中的 DLGTEMPLATE 標頭之後,是一或多個 DLGITEMTEMPLATE 結構,可定義對話框中控件的維度和樣式。 cdit 成員會指定範本中的 DLGITEMTEMPLATE 結構數目。 這些 DLGITEMTEMPLATE 結構必須在 DWORD 界限上對齊。

如果您在功能表、類別、標題或字樣陣列中指定字元字串,則必須使用 Unicode 字串。

x、y、cxcy 成員會在對話框單位中指定值。 您可以使用 MapDialogRect 函式,將這些值轉換成螢幕單位 (圖元) 。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
標頭 winuser.h (包括 Windows.h)

另請參閱

概念

CreateDialogIndirect

CreateDialogIndirectParam

DLGITEMTEMPLATE

DLGITEMTEMPLATEEX

DLGTEMPLATEEX

對話框

DialogBoxIndirect

DialogBoxIndirectParam

MapDialogRect

MultiByteToWideChar

其他資源

參考