MEASUREITEMSTRUCT 结构 (winuser.h)

通知系统所有者绘制的控件或菜单项的尺寸。 这允许系统正确处理用户与控件的交互。

语法

typedef struct tagMEASUREITEMSTRUCT {
  UINT      CtlType;
  UINT      CtlID;
  UINT      itemID;
  UINT      itemWidth;
  UINT      itemHeight;
  ULONG_PTR itemData;
} MEASUREITEMSTRUCT, *PMEASUREITEMSTRUCT, *LPMEASUREITEMSTRUCT;

成员

CtlType

类型: UINT

控件类型。 此成员可以是下表中显示的值之一。

Value 含义
ODT_COMBOBOX
所有者绘制的组合框
ODT_LISTBOX
所有者绘制的列表框
ODT_LISTVIEW
所有者绘制列表视图控件
ODT_MENU
所有者绘制的菜单

CtlID

类型: UINT

组合框或列表框的标识符。 此成员不适用于菜单。

itemID

类型: UINT

菜单项的标识符或列表框或组合框项的位置。 仅当列表框具有 LBS_OWNERDRAWVARIABLE 样式时,才为列表框指定此值;仅当组合框具有 CBS_OWNERDRAWVARIABLE 样式时,才为其指定此值。

itemWidth

类型: UINT

菜单项的宽度(以像素为单位)。 在从消息返回之前,所有者绘制的菜单项的所有者必须填充此成员。

itemHeight

类型: UINT

列表框或菜单中单个项的高度(以像素为单位)。 在从邮件返回之前,所有者绘制的组合框、列表框或菜单项的所有者必须填写此成员。

itemData

类型: ULONG_PTR

与菜单项关联的应用程序定义值。 对于控件,此成员指定LB_SETITEMDATA或CB_SETITEMDATA消息最后分配给列表框或组合框的值。 如果列表框或组合框具有LB_HASSTRINGS或CB_HASSTRINGS样式,则此值最初为零。 否则,此值最初是传递到以下消息之一的 lParam 参数中的列表框或组合框的值:

注解

所有者绘制控件的所有者窗口接收指向 MEASUREITEMSTRUCT 结构的指针,作为WM_MEASUREITEM消息的 lParam 参数。 创建控件时,所有者绘制的控件将此消息发送到其所有者窗口。 然后,所有者在 结构中填充控件的相应成员并返回 。 此结构适用于所有所有者绘制的控件,但所有者绘制的按钮控件的大小由其窗口预先确定。

如果应用程序未填充 MEASUREITEMSTRUCT 的适当成员,则可能无法正确绘制控件或菜单项。

要求

   
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
标头 winuser.h (包括 Windows.h)

另请参阅

CB_ADDSTRING

CB_INSERTSTRING

CB_SETITEMDATA

LB_ADDSTRING

LB_INSERTSTRING

LB_SETITEMDATA

引用

WM_MEASUREITEM