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

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

 2008-11-14 19:33:22 来源:WEB开发网   
核心提示:应用程序中的菜单,在界面中占据了重要位置,Visual C++中自绘菜单的实现,它的效果如何,直接影响了整个程序的界面效果,处理当前菜单项中菜单图标、文字显示的功能,DrawItem()函数的原形为:virtual void DrawItem( LPDRAWITEMSTRUCT lpDrawItemStruct ),正

应用程序中的菜单,在界面中占据了重要位置,它的效果如何,直接影响了整个程序的界面效果,正因为这个原因,当今流行的应用程序的菜单都支持附带图标、反映当前状态的功能,也就是说,菜单项上不再仅仅有文字,还有附带一个小小的图标,同时在用户操作菜单时,菜单能够以不同的状态反映用户的操作,这些功能的实现,可以大大,美化程序界面,增强程序的吸引力。

Visual C++为开发人员提供了应用程序自动生成方法,使开发人员可以避开繁琐的界面开发,专著于各种功能的具体实现。虽然这种自动生成应用程序框架的手段方便了初级程序设计人员,但是它也有着先天的不足,那就是通过这种手段生成的应用程序界面比较简单,不适宜应用程序的推广。对于Visual C++自动生成的框架程序,要实现菜单的上述功能,唯一的办法就是通过菜单自绘的手段来实现,本例将通过实现CMenu类的子类CmenuEx类,详细介绍了如何编程实现菜单的自绘,使应用程序中的菜单也可以拥有图标,并且能够反映用户的不同操作,下图为程序编译运行后的效果:

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

图一、自绘菜单实现后的效果图

一、实现方法:

要实现漂亮的界面菜单,必须要启动菜单项的自绘功能,所谓菜单的自绘,就是让菜单自己管理自己的显示效果,为此,首先要作的就是设置菜单项的风格为MF_OWNERDRAW(自绘制),设置菜单的自绘功能即可以通过CMenu类的AppendMenu()函数在菜单的初始阶段实现,也可以通过ModifyMenu()函数对已存在的菜单项进行类型修改。

具体的菜单的自绘是通过重载CMenu类的DrawItem()函数来实现的,这个函数根据各种菜单状态,处理当前菜单项中菜单图标、文字显示的功能。DrawItem()函数的原形为:virtual void DrawItem( LPDRAWITEMSTRUCT lpDrawItemStruct ),它参数为一个指向DRAWITEMSTRUCT结构的指针,DRAWITEMSTRUCT结构如下:

1 2 3 4 5 6  下一页

Tags:Visual 菜单 实现

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