DRAWITEMSTRUCT 结构 (winuser.h)
提供所有者窗口用于确定如何绘制所有者绘制的控件或菜单项的信息。 所有者绘制的控件或菜单项的所有者窗口接收指向此结构的指针,作为WM_DRAWITEM消息的 lParam 参数。
语法
typedef struct tagDRAWITEMSTRUCT {
UINT CtlType;
UINT CtlID;
UINT itemID;
UINT itemAction;
UINT itemState;
HWND hwndItem;
HDC hDC;
RECT rcItem;
ULONG_PTR itemData;
} DRAWITEMSTRUCT, *PDRAWITEMSTRUCT, *LPDRAWITEMSTRUCT;
成员
CtlType
类型: UINT
控件类型。 此成员可以是以下值之一。 请参阅“备注”。
值 | 含义 |
---|---|
|
所有者绘制的按钮 |
|
所有者绘制的组合框 |
|
所有者绘制的列表框 |
|
列表视图控件 |
|
所有者绘制的菜单项 |
|
所有者绘制的静态控件 |
|
Tab 控件 |
CtlID
类型: UINT
组合框、列表框、按钮或静态控件的标识符。 此成员不用于菜单项。
itemID
类型: UINT
菜单项的菜单项标识符或列表框或组合框中项的索引。 对于空列表框或组合框,此成员可以是 -1
。 这样,即使控件中没有项,应用程序也能在 rcItem 成员指定的坐标处仅绘制焦点矩形。 这向用户指示列表框或组合框是否具有焦点。
在 itemAction 成员中设置位的方式决定了是否要绘制矩形,就像列表框或组合框具有焦点一样。
itemAction
类型: UINT
所需的绘图操作。 此成员可以是一个或多个值。
值 | 含义 |
---|---|
|
需要绘制整个控件。 |
|
控件已丢失或获取键盘焦点。 应检查 itemState 成员以确定控件是否具有焦点。 |
|
选择状态已更改。 应检查 ItemState 成员以确定新的选择状态。 |
itemState
类型: UINT
当前绘图操作发生后项的视觉状态。 此成员可以是下表中显示的值的组合。
hwndItem
类型: HWND
组合框、列表框、按钮和静态控件的控件的句柄。 对于菜单,此成员是包含该项的菜单的句柄。
hDC
类型: HDC
设备上下文的句柄;在控件上执行绘图操作时,必须使用此设备上下文。
rcItem
类型: RECT
定义要绘制的控件的边界的矩形。 此矩形位于 hDC 成员指定的设备上下文中。 系统会自动剪辑所有者窗口在设备上下文中为组合框、列表框和按钮绘制的任何内容,但不剪裁菜单项。 绘制菜单项时,所有者窗口不得在 rcItem 成员定义的矩形边界之外绘制。
itemData
类型: ULONG_PTR
与菜单项关联的应用程序定义的值。 对于控件,此参数指定LB_SETITEMDATA或CB_SETITEMDATA消息最后分配给列表框或组合框的值。 如果列表框或组合框具有 LBS_HASSTRINGS 或 CBS_HASSTRINGS 样式,则此值最初为零。 否则,此值最初是传递到以下消息之一的 lParam 参数中的列表框或组合框的值:
如果 CtlType为ODT_BUTTON 或 ODT_STATIC, 则 itemData 为零。注解
某些控件类型(如状态栏)不设置 CtlType 的值。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
标头 | winuser.h (包括 Windows.h) |
另请参阅
引用