DRAWITEMSTRUCT 结构

DRAWITEMSTRUCT 结构提供所有者窗口必须确定如何绘制所有者描述的控件或菜单项的信息。

typedef struct tagDRAWITEMSTRUCT { 
   UINT CtlType; 
   UINT CtlID; 
   UINT itemID; 
   UINT itemAction; 
   UINT itemState; 
   HWND hwndItem; 
   HDC hDC; 
   RECT rcItem; 
   DWORD itemData; 
} DRAWITEMSTRUCT;

参数

  • CtlType
    控件类型。 控件类型的值如下所示:

    • ODT_BUTTON 所有者描述的按钮

    • ODT_COMBOBOX 所有者绘制的组合框

    • ODT_LISTBOX 列表框的所有者描述

    • 所有者描述ODT_MENU 的菜单

    • ODT_LISTVIEW 列表视图控件

    • ODT_STATIC 所有者绘制的静态控件

    • ODT_TAB 选项卡控件

  • CtlID
    组合框、列表框或按钮的控件 ID。 此成员对于菜单使用。

  • itemID
    菜单或索引的项目标识在列表框或组合框。 对于空列表框或组合框,该成员是负值,允许应用程序只焦点矩形绘制在 rcItem 成员指定坐标,即使没有在控件的项。 用户可能因此显示列表框或组合框是否具有输入焦点。 位的设置在 itemAction 成员确定是要绘制的矩形,则列表框或组合框。具有输入焦点。

  • itemAction
    定义所需的绘制操作。 这是以下一个或多个位:

    • ODA_DRAWENTIRE 此位设置,在整个控件需要绘制。

    • 当控件失去或捕获点时,输入ODA_FOCUS 此位设置。 itemState 成员应检查以确定控件是否具有焦点。

    • 当只选择状态更改时,此位设置ODA_SELECTitemState 成员应检查确定新选择状态。

  • itemState
    在当前绘图操作发生后,指定项的可视状态。 即,如果菜单项将显示为灰色,状态将 ODS_GRAYED 标志设置。 状态标记如下:

    • 如果菜单项将检查ODS_CHECKED,此位设置。 该位在菜单仅使用。

    • 项,则将绘制禁用,此位设置为ODS_DISABLED

    • 如果项有,输入指向ODS_FOCUS,此位设置。

    • 项,则将显示为灰色,ODS_GRAYED 此位设置。 该位在菜单仅使用。

    • 如果项的状态,此位设置选择ODS_SELECTED

    • ODS_COMBOBOXEDIT 图形中选择字段 (编辑控件) ownerdrawn 发生组合框。

    • ODS_DEFAULT 项是默认项。

  • hwndItem
    对于组合框、列表框和按钮指定的控件的窗口句柄。 指定包含菜单的菜单项 (HMENU) 的句柄。

  • hDC
    标识与设备上下文。 此设备上下文,当对控件的绘制操作时,必须使用。

  • rcItem
    在定义一个要绘制的控件边界的 hDC 成员指定设备上下文。 Windows 组合框、列表框和按钮的设备上下文自动剪辑任何内容,所有者描述,但不会剪裁菜单项。 当绘制菜单项时,所有者无法在 rcItem 成员定义的矩形边界外绘制。

  • itemData
    对于组合框或列表框,此成员包含传递到下面列表框之一:

    对于菜单,该成员包含传递到菜单下列操作之一:

备注

所有者描述的控件或菜单项所有者的窗口收到指针到此结构以 WM_DRAWITEM 消息的 lParam 参数。

要求

页眉: 指令

请参见

参考

CWnd::OnDrawItem

其他资源

结构、样式、回调和消息映射