简介: VsMenu控件是一款完全可以模仿Office XP和Office 2003的风格菜单控件。
使用示例
OfficeXP的菜单界面大家都不陌生吧,你也许想在VB开发的程序中,也用上这种非常漂亮的菜单,但是也许为它付出惨重的代价,不是实现方法困难,就是需要写相当多代码,非常的不划算,现在笔者将为你介绍一款适应于所有Windows操作系统、并且全面支持MDI窗口和系统菜单、完全模拟MS OfficeXP及Office2003 风格的菜单控件,就是这样一款您已经找了很久的控件。她是目前所有主流开发工具下零代码轻松实现XP&2003菜单效果。这个示例中我们将使用VsMenu控件打造出一个很酷的OfficeXP菜单。
VsMenu控件实现XP和2003效果的过程是不需要我们去关心的,所以它仅仅提供了少许的方法和属性,作为一款相当傻瓜的控件,对控件的设置都可以通过鼠标来完成,不过我们还是介绍一下控件常用的方法、属性和事件。见下表:
VsMenu控件常用方法列表
方法
说明
Init
初始化窗口
SetBitmapByCaption
设置菜单项图标
SetCustomAttributes
一次性设置菜单的有关各项属性
VsMenu控件常用属性列表
属性
数据类型
说明
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
是否使用系统字体
VsMenu控件常用事件列表
事件
说明
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备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073










