DRAWITEMSTRUCT

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

DRAWITEMSTRUCT结构提供了所有者窗口必须确定如何绘制所有者绘制的控件或菜单??项的信息。所有者绘制的控件或菜单??项的所有者窗口作为WM_DRAWITEM消息的【lParam的】参数接收到此结构的指针。

typedef struct tagDRAWITEMSTRUCT { // dis

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_LISTVIEW列表视图控件
ODT_MENU所有者菜单项
ODT_STATIC所有者静态控制
ODT_TAB标签控件

CtlID

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

itemID

指定菜单项的菜单项标识符或列表框或组合框中项的索引。对于空列表框或组合框,此成员可以为-1。这允许应用程序仅绘制由rcItem成员指定的坐标处的焦点矩形,即使控件中没有任何项目。这向用户指示列表框或组合框是否具有焦点。itemAction成员中的位如何设置是否要绘制矩形,就像列表框或组合框具有焦点一样。

itemAction

指定所需的绘图操作。该成员可以是以下一个或多个值:

含义
ODA_DRAWENTIRE需要绘制整个控件。
ODA_FOCUS控制已经失去或获得了键盘焦点。应检查ITEMSTATE成员以确定控件是否具有焦点。
ODA_SELECT选择状态已更改。应检查ITEMSTATE成员以确定新的选择状态。

ITEMSTATE

指定当前绘图操作发生后项目的视觉状态。该成员可以是以下值的组合:

含义
ODS_CHECKED要检查菜单项。该位仅在菜单中使用。
ODS_COMBOBOXEDIT绘图发生在所有者组合框的选择字段(编辑控件)中。
ODS_DEFAULT该项目是默认项目。
ODS_DISABLED该项目被绘制为禁用。
ODS_FOCUS该项目具有键盘焦点。
ODS_GRAYED该项目将变灰。该位仅在菜单中使用。
ODS_SELECTED选择菜单项的状态。

hwndItem

标识组合框,列表框,按钮和静态控件的控件。对于菜单,此成员标识包含该项目的菜单。

hDC

识别设备上下文;在对控件执行绘图操作时,必须使用此设备上下文。

rcItem

指定一个矩形,定义要绘制的控件的边界。该矩形位于hDC成员指定的设备上下文中。Windows自动剪辑所有者窗口在设备上下文中为组合框,列表框和按钮绘制的任何内容,但不剪辑菜单项。绘制菜单项时,所有者窗口不得绘制在由rcItem成员定义的矩形的边界之外。

的ItemData

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

CB_ADDSTRING
CB_INSERTSTRING
LB_ADDSTRING
LB_INSERTSTRING

如果ctlType为ODT_BUTTON或ODT_STATIC,则的ItemData为零。

也可以看看

CB_ADDSTRING, CB_INSERTSTRING, CB_SETITEMDATA, LB_ADDSTRING, LB_INSERTSTRING, LB_SETITEMDATA, WM_DRAWITEM