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

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

 2008-11-14 19:33:22 来源:WEB开发网   
核心提示: 说明:这个函数用来从工具条上获取相应图标,5、void ChangeStyle(CMenu *pMenu,CToolBar *pToolBar,BOOL bIsMainMenu)说明:这个函数用来修改菜单pMenu的类型为"自绘制"6、void DrawMenuItem

说明:这个函数用来从工具条上获取相应图标。

5、void ChangeStyle(CMenu *pMenu,CToolBar *pToolBar,BOOL bIsMainMenu)

说明:这个函数用来修改菜单pMenu的类型为"自绘制"

6、void DrawMenuItemImage(CDC *pDC,CRect &rect,BOOL bSelected,BOOL bChecked,BOOL bGrayed,BOOL bHasImage,LPMENUITEM lpItem);

说明:这个函数根据菜单的不同状态及包含的各种信息,对菜单进行绘制;

上述函数构成了CMenuEx类的主要骨架,该类还有一些实现辅助函数,它们分别是:

1、void SetHighLightColor(COLORREF crColor); //设置菜单搞亮显示;

2、void SetBackColor(COLORREF); //设置菜单的背景颜色;

3、void SetTextColor(COLORREF); //设置菜单的文本颜色;

4、void GrayString(CDC *pDC,const CString &str,const CRect rect); //显示灰色菜单文本;

5、void TextMenu(CDC *pDC,CRect &rect,CRect rtText,BOOL bSelected,BOOL bGrayed,LPMENUITEM lpItem); //显示菜单上的文本;

CMenuEx类在使用过程中,要注意对其初始化,对于主框架菜单,可以在CMainFrame类的WM_INITMENU消息响应函数中实现,为了激活菜单的自绘功能, 需要在CMainFrame类的WM_DRAWITEM和WM_MEASUREITEM中分别调用CMenuEx类的DrawItem()函数和MeasureItem()函数。对于上下文菜单的实现,有两种方法,一种方法是在项目视图类的WM_INITMENUPOPUP响应函数中调用InitPopupMenu()函数来修改菜单的类型,然后在WM_CONTEXTMENU响应函数中调用CMenu::TrackPopupMenu()函数显示上下文菜单;另一种方法是直接响应鼠标的右键单击消息,在响应函数中处理鼠标的初始化和显示。第二种方法处理上下文菜单比较常用,这方面的资料也很多,就不在赘述了。为了让读者朋友们更深入的了解上下文菜单的处理,例子中使用了第一种方法。

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

Tags:Visual 菜单 实现

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