LPDRAWITEMSTRUCT,PDRAWITEMSTRUCT ,DRAWITEMSTRUCT参数介绍

来源:互联网 发布:网络推广大熊猫优化 编辑:程序博客网 时间:2024/06/07 18:06

定义

typedef struct tagDRAWITEMSTRUCT {    UINT        CtlType;    UINT        CtlID;    UINT        itemID;    UINT        itemAction;    UINT        itemState;    HWND        hwndItem;    HDC         hDC;    RECT        rcItem;    ULONG_PTR   itemData;} DRAWITEMSTRUCT, NEAR *PDRAWITEMSTRUCT, FAR *LPDRAWITEMSTRUCT;

参数:

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
对于组合框或列表框,此成员包含传递到列表框下列操作之一的值:
CComboBox::AddString
CComboBox::InsertString
CListBox::AddString
CListBox::InsertString
对于菜单,此成员包含传递到菜单下列操作之一的值:
CMenu::AppendMenu
CMenu::InsertMenu
CMenu::ModifyMenu

0 0