WEB开发网
开发学院软件开发VC 一种漂亮的自绘菜单 阅读

一种漂亮的自绘菜单

 2008-01-19 20:25:30 来源:WEB开发网   
核心提示:以前还是菜鸟时就觉得QQ的菜单做得很漂亮,想着自已的程序如果有那种菜单多好,一种漂亮的自绘菜单,现在积累了一定的知识,就自已设计了一个类似的菜单控件类,参数当然是位图的ID值,注意选择位图时要选好看一点的哦!要记得高宽的比例,并把它发表出来供大家使用和参考,难免有不足的地方请高手不吝赐教!菜单效果如下: 一、CMenu

以前还是菜鸟时就觉得QQ的菜单做得很漂亮,想着自已的程序如果有那种菜单多好。

现在积累了一定的知识,就自已设计了一个类似的菜单控件类。并把它发表出来供大家使用和参考,难免有不足的地方请高手不吝赐教!

菜单效果如下:

 

一、CMenuEx菜单类主要接口函数:

1、void InitMenu(CMenu *pMenu,UINT uToolBar,CToolBar *pToolBar);

说明:这是最主要的一个接口。如果要改变主窗口的菜单则应在主窗口的OnInitMenu(CMenu *pMenu)中调用该函数(如:m_menu.InitMenu(pMenu,IDR_MAINFRAME,&m_wndToolBar)),当然主窗口必须要有工具栏,才会产生菜单项位图。最后还必须重载主窗口的OnMeasureItem()和OnDrawItem()。并在两个函数中分别

调用菜单类的另外两个接口DrawItem()和MeasureItem();

2、void SetHighLightColor(COLORREF crColor);

3、void SetBackColor(COLORREF);

4、void SetTextColor(COLORREF);

以上三个接口应该不用再说明 。

QQ的菜单采用的颜色是

SELECTTEXT_COLOR RGB(0,0,127)

TEXT_COLOR RGB(0,0,0)

BK_COLOR RGB(143,167,207) 效果不错

5、void SetImageLeft(UINT idBmpLeft)

说明:这也是个重要的接口。要实现纵向位图(像“开始”菜单)。可以在适当的地方调用该函数。参数当然是位图的ID值。注意选择位图时要选好看一点的哦!要记得高宽的比例。

6、void InitPopupMenu(CMenu *pMenu,UINT uToolBar,CToolBar *pToolBar)

与InitMenu不同的是:InitMenu并不修改第一级菜单为自绘风格,而

1 2 3  下一页

Tags:漂亮 菜单

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