MEASUREITEMSTRUCT

【勇芳软件工作室】汉化HomePreviousNext

MEASUREITEMSTRUCT结构向Windows通知所有者绘制的控件或菜单??项的尺寸。这允许Windows正确处理与控件的用户交互。

typedef struct tagMEASUREITEMSTRUCT { //这

UINT CtlType; //控件类型

UINT CtlID; //组合框,列表框或按钮标识符

UINT itemID; //菜单项,变量高度列表框或组合框标识符

UINT itemWidth; //菜单项的宽度,以像素为单位

UINT itemHeight; //列表框菜单中单项的高度,以像素为单位

DWORD itemData; //应用程序定义的32位值

} MEASUREITEMSTRUCT;

会员

CtlType

指定控件类型。该成员可以是以下值之一:

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

CtlID

指定组合框,列表框或按钮的标识符。该成员不用于菜单。

itemID

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

itemWidth

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

itemHeight

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

的ItemData

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

CB_ADDSTRING
CB_INSERTSTRING
LB_ADDSTRING
LB_INSERTSTRING

备注

所有者绘制控件的所有者窗口接收到一个指向MEASUREITEMSTRUCT结构的指针作为WM_MEASUREITEM消息的【lParam的】参数。所创建的控件在创建控件时将此消息发送到其所有者窗口。所有者然后在结构中填写相应的成员以进行控制和返回。这种结构对于所有所有者绘制的控件是常见的。

如果应用程序没有填写MEASUREITEMSTRUCT的相应成员,则可能无法正确绘制控件或菜单??项。

也可以看看

CB_ADDSTRING, CB_INSERTSTRING, CB_SETITEMDATA, LB_ADDSTRING, LB_INSERTSTRING, LB_SETITEMDATA, WM_MEASUREITEM