使用示例
OfficeXP的菜单界面大家都不陌生吧,你也许想在VB开发的程序中,也用上这种非常漂亮的菜单,但是也许为它付出惨重的代价,不是实现方法困难,就是需要写相当多代码,非常的不划算,现在笔者将为你介绍一款适应于所有Windows操作系统、并且全面支持MDI窗口和系统菜单、完全模拟MS OfficeXP及Office2003 风格的菜单控件,就是这样一款您已经找了很久的控件。她是目前所有主流开发工具下零代码轻松实现XP&2003菜单效果。这个示例中我们将使用VsMenu控件打造出一个很酷的OfficeXP菜单。
VsMenu控件实现XP和2003效果的过程是不需要我们去关心的,所以它仅仅提供了少许的方法和属性,作为一款相当傻瓜的控件,对控件的设置都可以通过鼠标来完成,不过我们还是介绍一下控件常用的方法、属性和事件。见下表:
方法 |
说明 |
Init |
初始化窗口 |
SetBitmapByCaption |
设置菜单项图标 |
SetCustomAttributes |
一次性设置菜单的有关各项属性 |
属性 |
数据类型 |
说明 |
BitmapSize |
Long |
设置菜单显示项的大小 |
DisplayShadow |
Boolean |
设置菜单显示是否有阴影 |
DrawStyle |
UcsMenuStyle类型 |
设置菜单配色方案,是自定义还是默认 |
RightToLeft |
Boolean |
反转菜单显示方向 |
UserCheckBackColour |
Variant |
复选框颜色 |
UserCheckBorderColour |
Variant |
复选框边框颜色 |
UserGradientOne |
OLE_COLOR |
第一次渐变色 |
UserGradientTwo |
OLE_COLOR |
第二次渐变色 |
UserMenuBorderColour |
OLE_COLOR |
菜单边界颜色 |
UserSelectedItemForeColour |
OLE_COLOR |
被选菜单文字颜色 |
UserSelectedMenuBackColour |
OLE_COLOR |
被选菜单背景颜色 |
UserSelectedMenuBorderColour |
OLE_COLOR |
被选菜单的边界颜色 |
UserSideBarColour |
OLE_COLOR |
工具条颜色 |
UserTopMenuBackColour |
OLE_COLOR |
主菜单背景颜色 |
UserTopMenuHotBorderColour |
OLE_COLOR |
主菜单热点边界颜色 |
UserTopMenuHotColour |
OLE_COLOR |
主菜单热点颜色 |
UserTopMenuSelectedColour |
OLE_COLOR |
展开的主菜单背景颜色 |
UseSystemFont |
Boolean |
是否使用系统字体 |
事件 |
说明 |
Highlight |
移入菜单事件,与按钮的移入、移出事件类似 |
CustomDrawItemFont |
菜单项自绘字体设置 |
CustomDrawItemHoverFont |
当鼠标移入或用键盘选中某菜单项时该菜单项的自绘字体设置 |
下面我们将介绍该控件的用法。
第一步:首先启动Visual Basic 6.0,新建一个窗体,然后用工程中的菜单编辑器向窗体添加菜单
第二步:加载VsMenu控件;在控件工具栏中单击右键,选择“部件”,在弹出的窗口中点击“浏览”,找到VsMenu控件,载入它;把它添加到窗体中任意位置即可,这个时候,你就会发现,窗体的菜单已经发生了变化,已经变成了OfficeXP风格的菜单了。
你可以按F5键运行该程序查看程序运行效果了,下面我们将介绍如何更改该控件的一些设置。
第三步:设置VsMenu控件。
该控件的设置相当简单,它提供了一个属性页帮助开发者进行控件的设定。点中VsMenu控件,按下Shift+F4组合键便会弹出该控件的属性页,如下图:
在该属性页内可以设置菜单项图标、样式以及菜单大小等等属性。在“自定义菜单颜色”的页内,提供了一套Office2003风格菜单的配色方案,可以通过设定“绘制样式”中的属性改变菜单样式,如下图所示,你也可以根据需要自己编写配色方案。
在字体页内可以设置菜单中字体大小,这个功能需禁用“使用系统字体功能”
第三步:在程序中动态设置VsMenu控件。
我们可以通过控件提供的方法、属性和事件来控制它,下面我们就举几个简单的例子。
’设置菜单默认风格 ctxVsMenu1.DrawStyle = MS_默认 |
’设置菜单自定义风格 ctxVsMenu1.DrawStyle = MS_自定义 |
’设置菜单显示项的大小 ctxVsMenu1.BitmapSize = 24 |
Private Sub ctxVsMenu1_Highlight(strMenuCaption As String) If strMenuCaption = "新建(&N)" Then Msgbox "新建一个文档" End If End Sub |
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/
领测软件测试网最新更新
关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073