WEB开发网
开发学院软件开发VC Visual C++中自绘菜单的实现 阅读

Visual C++中自绘菜单的实现

 2008-11-14 19:33:22 来源:WEB开发网   
核心提示: typedef struct tagDRAWITEMSTRUCT {UINT CtlType; //控件类型;UINT CtlID; //组合框、列表框等控件的ID标识号;UINT itemID; //菜单项的ID标识号或列表框、组合框中某一项的索引值;UINT itemAction; /

typedef struct tagDRAWITEMSTRUCT {
 UINT CtlType; //控件类型;
 UINT CtlID; //组合框、列表框等控件的ID标识号;
 UINT itemID; //菜单项的ID标识号或列表框、组合框中某一项的索引值;
 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表示Tab控件。CtlID指定了自绘控件的ID值,而对于菜单项则不需要使用该成员。itemID表示菜单项ID,也可以表示列表框或者组合框中某项的索引值,对于一个空的列表框或组合框,该成员的值为-1。

itemAction指定绘制行为,其取值可以为下表中所示值的一个或者多个的联合:ODA_DRAWENTIRE表示整个控件都需要被绘制;ODA_FOCUS表示控件需要在获得或失去焦点时被绘制;ODA_SELECT表示控件需要在选中状态改变时被绘制。

itemState指定了当前绘制操作时所绘项的状态,例如,如果菜单项应该被灰色显示,则可以指定ODS_GRAYED状态标志。其取值可以为下表中所示值的一个或者多个的联合:ODS_CHECKED表示菜单项将被选中,该值只对菜单项有用;

ODS_COMBOBOXEDIT在自绘组合框控件中只绘制选择区域;

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

Tags:Visual 菜单 实现

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