DLGITEMTEMPLATE 結構 (winuser.h)

定義對話方塊中控制項的維度和樣式。 其中一或多個結構會與 DLGTEMPLATE 結構結合,以形成對話方塊的標準範本。

語法

typedef struct {
  DWORD style;
  DWORD dwExtendedStyle;
  short x;
  short y;
  short cx;
  short cy;
  WORD  id;
} DLGITEMTEMPLATE;

成員

style

類型: DWORD

控制項的樣式。 這個成員可以是 視窗樣式值 (的組合,例如 WS_BORDER) 和一或多個 控制項樣式值 (例如 BS_PUSHBUTTONES_LEFT) 。

dwExtendedStyle

類型: DWORD

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

x

類型: short

控制項左上角的 X座標,以對話方塊單位表示。 這個座標一律會相對於對話方塊工作區的左上角。

y

類型: short

控制項左上角的 Y座標,以對話方塊單位表示。 這個座標一律會相對於對話方塊工作區的左上角。

cx

類型: short

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

cy

類型: short

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

id

類型: WORD

控制項識別碼。

備註

在對話方塊的標準範本中, DLGITEMTEMPLATE 結構一律緊接著三個可變長度陣列,指定 控制項的類別、標題和建立資料。 每個陣列都包含一或多個 16 位元素。

範本中的每個 DLGITEMTEMPLATE 結構都必須對齊 DWORD 界限。 類別和標題陣列必須在 WORD 界限上對齊。 建立資料陣列必須對齊 WORD 界限。

緊接在每個 DLGITEMTEMPLATE 結構之後,是指定控制項視窗類別的類別陣列。 如果此陣列的第一個專案是0xFFFF以外的任何值,則系統會將陣列視為以 Null 終止的 Unicode 字串,指定已註冊視窗類別的名稱。 如果第一個專案是0xFFFF,陣列會有一個額外的元素,指定預先定義系統類別的序數值。 序數可以是下列其中一個 Atom 值。

意義
0x0080 按鈕
0x0081 編輯
0x0082 靜態
0x0083 清單方塊
0x0084 捲軸
0x0085 下拉式方塊
 

在類別陣列之後,是標題陣列,其中包含控制項的初始文字或資源識別碼。 如果此陣列的第一個元素0xFFFF,陣列會有一個額外的元素,指定可執行檔中的資源序數值,例如圖示。 您可以針對控制項使用資源識別碼,例如靜態圖示控制項,以載入並顯示圖示或其他資源,而不是文字。 如果第一個專案是0xFFFF以外的任何值,則系統會將陣列視為指定初始文字的 Null 終止 Unicode 字串。

建立資料陣列會在標題陣列之後的下一個 WORD 界限開始。 此建立資料可以是任何大小和格式。 如果建立資料陣列的第一個字不是零,表示建立資料的大小,以位元組為單位, (包括大小字組) 。 控制項的視窗程式必須能夠解譯資料。 當系統建立控制項時,它會在傳送至控制項之WM_CREATE訊息的lParam參數中傳遞此資料的指標。

如果您在類別和標題陣列中指定字元字串,則必須使用 Unicode 字串。 使用 MultiByteToWideChar 函 式從 ANSI 字串產生 Unicode 字串。

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

規格需求

   
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
標頭 winuser.h (包含 Windows.h)

另請參閱

概念

CreateDialogIndirect

CreateDialogIndirectParam

CreateWindowEx

DLGITEMTEMPLATEEX

DLGTEMPLATE

DLGTEMPLATEEX

對話方塊

DialogBoxIndirect

DialogBoxIndirectParam

MapDialogRect

MultiByteToWideChar

其他資源

參考

WM_CREATE