WEB开发网
开发学院软件开发VC 自绘按钮的实现 阅读

自绘按钮的实现

 2008-01-19 20:25:45 来源:WEB开发网   
核心提示:typedef struct tagDRAWITEMSTRUCT {UINT CtlType;UINT CtlID;UINT itemID;UINT itemAction;UINT itemState;HWND hwndItem;HDC hDC;RECT rcItem;ULONG_PTR itemData;} DRAW

typedef struct tagDRAWITEMSTRUCT {

UINT CtlType;

UINT CtlID;

UINT itemID;

UINT itemAction;

UINT itemState;

HWND hwndItem;

HDC hDC;

RECT rcItem;

ULONG_PTR itemData;

} DRAWITEMSTRUCT;

结构成员:

CtlType

指定了控件的类型,其取值如下表所示。

取值

描述

ODT_BUTTON

按钮控件

ODT_COMBOBOX

组合框控件

ODT_LISTBOX

列表框控件

ODT_LISTVIEW

列表视图控件

ODT_MENU

菜单项

ODT_STATIC

静态文本控件

ODT_TAB

Tab控件

CtlID

指定了自绘控件的ID值,而对于菜单项则不需要使用该成员

itemID

表示菜单项ID,也可以表示列表框或者组合框中某项的索引值。对于一个空的列表框或组合框,该成员的值为–1。这时应用程序只绘制焦点矩形(该矩形的坐标由rcItem 成员给出)虽然此时控件中没有需要显示的项,但是绘制焦点矩形还是很有必要的,因为这样做能够提示用户该控件是否具有输入焦点。当然也可以设置itemAction 成员为合适值,使得无需绘制焦点。

itemAction

指定绘制行为,其取值可以为下表中所示值的一个或者多个的联合。

取值

描述

ODA_DRAWENTIRE

当整个控件都需要被绘制时,设置该值

ODA_FOCUS

如果控件需要在获得或失去焦点时被绘制,则设置该值。此时应该检查itemState成员,以确定控件是否具有输入焦点。

ODA_SELECT

如果控件需要在选中状态改变时被绘制,则设置该值。此时应该检查itemState 成员,以确定控件是否处于选中状态。

上一页  1 2 3 4 5 6 7  下一页

Tags:按钮 实现

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接