Visual Basic中轻松打造绚丽按钮

    控件下载

  简介:一个非常Cool的皮肤控件,可以将你窗体中的CommandButton的样式改变为XP、Java等等。推荐下载。

  使用示例

  想让你的程序更加吸引眼球吗?想在你的程序中打造类似Windows XP、Java、Flat风格的按钮吗?只要在你的程序中加上BSE控件,简简单单的一行代码,就可以轻松实现多达16种风格的按钮,完全使你抛弃了繁杂的代码!下面我们就结合一个实例来说明使用方法,并展示该控件实现的强大功能!

  BSE控件一个可以实现15种不同的风格,通过设置控件的SchemeStyle属性,我们可以很容易的控制窗口界面中CommandButton的风格。SchemeStyle的属性设置与其实现风格的对应关系如表一所示:

SchemeStyle属性 效果风格及说明
0 Windows XP Blue Scheme Button Style
1 Windows XP Olive Green Scheme Button Style
2 Windows XP Silver Scheme Button Style
3 Windows Flat Scheme Button Style
4 Windows Hover Scheme Button Style
5 Netscape Scheme Button Style
6 Java Scheme Button Style
7 Windows OLD 3.x Scheme Button Style
8 Office XP Blue Scheme Button Style
9 Office XP OliveGreen Scheme Button Style
10 Office XP Silver Scheme Button Style
11 Office XP SystemColor Scheme Button Style
12 WindowsXP InternetExplorer Scheme Button Style
13 Gradient Scheme Button Style
(渐变色背景风格)
14 Alien Scheme Button Style
(具有金属质感的按钮)
15 Bitmap Pattern Scheme Button Style
(实现按钮的背景,独立于按钮本身的Picture)

  了解了按钮的风格后,我们就可以根据自己的喜好随心所欲地设置风格了。

  第一步:首先启动Visual Basic 6.0,新建一个窗口。
  
  第二步:加载BSE控件,设置其属性。

  ①在控件工具栏中单击右键,选择“部件”,在弹出的窗口中点击“浏览”,找到BSE控件,载入它;把它添加到Form1窗体中任意位置即可。

  ②修改BSE控件属性。在BSE控件上单击右键,选择“属性”。在弹出的属性页设置窗口中选择“Options”,如图1,根据需要自行设置其中属性。


  其中,设置“Pattern Bitmap Images”的图片仅当SchemeStyle值设置为15时有效,它就是按钮显示的背景图片。“Gradient Scheme Options”仅当SchemeStyle值设置为13时有效,它可以设置背景渐变色的方向和起始、终止颜色。“Border Highlight Effect Options”可以设置部分风格的按钮点击时的边框颜色。

  第三步:加载其他控件,完成界面的设置。

  ①在窗体中添加4个CommandButton控件,名称分别为Command1、Command2、Command3、Command4,其中设置后两个按钮的Style属性为“1-Gradical”,再设置它们的picture,为它们添加两个合适的图片(如图2)。按钮的其他设置具体参看图2。

  ②添加一个option控件数组,名称为“option1”,index从0到15。caption设置如图2所示。

  到这里就完成了这个演示程序的界面设置,接着进行代码的编写。


  第四步:编写代码,实现具体的功能。

  ①编写Form1的Load事件,使程序启动时commandbutton显示为您说设置的风格,这里采用第一种风格,即Windows XP Blue风格。代码如下:

  Private Sub Form_Load()
   BSE1.SchemeStyle = 0
   BSE1.EndSubClassing
   BSE1.InitSubClassing
  End Sub

  ②添加option控件数组的事件,使可以根据选择option来转换commandbutton的不同风格。

  Private Sub Option1_Click(Index As Integer)
   BSE1.SchemeStyle = Index
   BSE1.EndSubClassing
   BSE1.InitSubClassing
  End Sub

  ③编写退出程序的代码,再Command4的Click事件中加入如下代码:

  If BSE1.EngineStarted Then
   BSE1.EndSubClassing '卸载BSE控件
  End If
  Unload Me

  到这里,这个简单的演示程序就完成了,是不是很简单呢?只要短短的几行代码就可以实现如此酷的按钮。快按下F5,看看效果吧(如图3)。


  你可以点击不同的OptionButton,观看16种不同的按钮风格,相信总有一种会适合您的程序

比网上其他版本(也包括之前在此发的两次)修正: 去除tab只有9页的限制 修正tab页宽度超过1万后,应该在其他页的控件会留一部分在当前页 放多个没有left、top或WhatsThisHelpID的控件不会产生错误(只是不会随页变动) 修正tabstop不能保持原值错误 修正鼠标停在tab上会不断刷新占用系统资源甚至内存溢出错误(去除usercontrol_mouseoverrefresh) tab标题头背景透明处理(美化了^_^) '-------------------------------------------- 修正后仍存在的不足 -------------------------------- 1、控件必须编译后使用,否则一旦拖放出新的adodc等会让自定义控件变为不可用状态的控件,TAB则会跳页错乱! 2、tab控件的WhatsThisHelpID属性被占用(-_-#,没办法,为了省系统资源,好在多数控件有这个属性且基本没人用,偷笑^^) 3、没有WhatsThisHelpID属性的控件不会随页变动 4、如果把本控件的BackColor设成&H00FF00DA& ,则所有放在Tab页上的控件将与背景一起被透明掉。 (本控件会重画放在其上的控件,所以控件也会被透明) 这个问题其实不算问题,没人必须把背景色设的和这个完全一样吧^^,哪怕差1也可以啊,点明这个问题只是要说明本控件的背景透明或任意形状控件的制作原理 原理: backstyle设为:0 maskColor设为:&H00FF00DA& (这个控件里UserControl的BackColor也要设为:&H00FF00DA&) 在Refresh方法将在UserControl重绘好的图作为maskPicture,即: Set UserControl.MaskPicture = UserControl.Image 这样maskpicture背景没有被重绘的部分保持&H00FF00DA&(即与maskcolor指定的颜色相同色),该颜色的部分即被透明 (注意,指定了backstyle=0及maskpicture后超出maskpicture大小的部分全部会被透明)!!! '---------------------------------------------------------比这个前一个版本的是没有用API的,可以在我的资源里找到前两次修改的版本,使用的话还是用这个版本 这几个控件有很多可学的地方, 比如其的错误处理(网上的源码和我上一个修改版本的源码错误处理的部分是不太合理的,虽然我和这个控件的其他修改者一样思路,但研究后最终还是用这次发布的这个版本) 比如上一版本的无API绘图,这个版本有api,因此图大小可变 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 测试.vbp那个是原先旧版的测试,没有跟着新版修改,所以不兼容,此楼新版是经过测试的,编译好的ocx可以直接使用(★必须使用编译好的ocx,原因一楼已经说了★) 对编译好的ocx有疑问或自己要改进的可以直接修改TabSwitch.vbp,再重新编译
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值