DRAWITEMSTRUCT 结构

DRAWITEMSTRUCT framework 提供所有者窗口必须确定如何使用所有者描述的控件或菜单项的信息。

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
    菜单或项的索引的菜单项 ID 在列表框或组合框中。对于空列表框或组合框,此成员是负值,使应用程序仅绘制焦点矩形。 rcItem 成员指定坐标,即使控件中没有项。用户可能从而显示列表框或组合框是否具有输入焦点。将 itemAction 成员的位确定是否将绘制矩形,就象列表框或组合框输入焦点。

  • itemAction
    定义需要的绘制事件。这将是以下一个或多个:

    • ,在绘制时,ODA_DRAWENTIRE 此位设置整个。

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

    • ,只有选择状态更改时,ODA_SELECT 此位设置。itemState 成员都应检查以确定新选定状态。

  • itemState
    ,在当前绘制事件发生后,以指定项的可视状态。也就是说,如果菜单项将显示为灰色,状态标志 ODS_GRAYED 将设置为。状态标志如下所示:

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

    • ,如果项目中绘制为禁用,ODS_DISABLED 此位设置。

    • ,如果项目输入焦点,ODS_FOCUS 此位设置。

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

    • ,如果项的状态时,ODS_SELECTED 此位设置。

    • ODS_COMBOBOXEDIT 绘制在选择字段发生 (编辑控件) 的 ownerdrawn 组合框。

    • ODS_DEFAULT 该项目是默认项目。

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

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

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

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

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

备注

所有者描述的控件或菜单项的所有者窗口接收指向此结构作为 WM_DRAWITEM 消息的 lParam 参数。

要求

Header: winuser.h

请参见

参考

CWnd::OnDrawItem

其他资源

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