用户登录  |  用户注册
首 页商业源码原创产品编程论坛
当前位置:PB创新网文章中心编程技巧VisualBasic

用VB实现浮动按钮

减小字体 增大字体 作者:佚名  来源:本站整理  发布时间:2009-03-16 19:48:57
方法一.
在微软的很多软件(如WORD)的工具栏中,都采用一种浮动按钮,即正常情况下按钮的图标呈灰色,当鼠标移动到某一按钮时,该按钮自动向上凸起且变为彩色,并在按钮的右下方有一标签提示该按钮的功能,鼠标移开后又自动还原,这种按钮用VB实现时,方法如下:
1.先用绘图工具作出按钮图标后存盘(如1.bmp),再用图象处理软件将该图标转换为灰 度图或浮雕图后再存盘(如2.bmp)。
2.运行VB,建立一新窗体(如form1)。
3.在窗体上需要建立按钮的位置处建立一图片框(如image1),其大小和图标相同,并将 其picture属性设为2.bmp。
4.在image1周围建立由四个长度相同的line控件(如line1~4)组成的方框,方框要比image1 控件稍大,否则达不到预计效果,将上面和左边的颜色设成白色,下面和右边的设成黑色, 并将四个line控件的visible属性都设成false 。
5.在程序中加入以下内容即可:
Private Sub Image1_MouseMove(Botton As Integer,Shift As Integer,X As Single,Y As Single)
Image1.Picture=LoadPicture("c:\1.bmp")
Line1.Visible=True
Line2.Visible=True
Line3.Visible=True
Line4.Visible=True
End Sub
Private Sub Form1_MouseMove(Botton As Integer,Shift As Integer,X As Single,Y As Single)
Image1.Picture=LoadPicture("c:\2.bmp")
Line1.Visible=False
Line2.Visible=False
Line3.Visible=False
Line3.Visible=False
End Sub

方法二.

微软的Visual Basic确实是个好东东,编写应用程序快捷高效。但是入门容易,想玩转它可不简单。我个人学VB就深有体会:一个人在VB的殿堂里摸索是何等的辛苦啊!有时为了一个特技、一句代码甚至一个变量要反复调试运行几十遍,也未必能通过,真恨不得一枪崩了VB。所以,我连这一点点小技巧都不敢独品,拿出来与大家共享,也算抛砖引玉,引出更多、更精彩的奇思妙文,以“飨”读者。
关于浮动按钮的实现思路不少,多是采取多图片重叠显示来实现。这种方法代码量多,实现起来较繁琐。因为,一个按钮还好,如果有十个按钮呢?一个按钮三个图片,十个就要三十个图片,可不是闹着玩的。
我的思路是:
舍弃CommandButton控件,每个按钮用4条Line控件和一个Label控件替代。4条Line围住Label的边缘,调入窗体时,置显示属性为False,并将左、上直线的颜色设为白色,右、下直线的颜色设为黑色。当鼠标移到Label上时,4条Line的显示属性置True;当鼠标离开按钮时,将4条Line的显示属性设置为False。这样在视觉上就完全得到立体浮动的效果。另外,VB的Line控件还支持直线倾斜,以此类推,完全可以做出更加美观的倾斜按钮。篇幅所限,下面仅给出一个按钮实现浮动效果的源代码。
Option Explicit
Private Sub Form_Load()
''初始Form与Label
Form1.Caption = “浮动按钮"
Form1.KeyPreview = False
label1.Caption = “确定"
''初始4条Line的显示属性为False
Line1.Visible = False
Line2.Visible = False
Line3.Visible = False
Line4.Visible = False
''初始4条Line的颜色
Line1.BorderColor = &HE0E0E0
Line2.BorderColor = &HE0E0E0
Line3.BorderColor = &H808080
Line4.BorderColor = &H808080
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
''鼠标指针在窗体上(不在按钮上)时,置4条Line的显示属性为False
Line1.Visible = False
Line2.Visible = False
Line3.Visible = False
Line4.Visible = False
End Sub
Private Sub label1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
''鼠标指针在按钮上时,置4条Line的显示属性为True
Line1.Visible = True
Line2.Visible = True
Line3.Visible = True
Line4.Visible = True
End Sub

Tags:

作者:佚名

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
PB创新网ourmis.com】Copyright © 2000-2009 . All Rights Reserved .
页面执行时间:11,718.75000 毫秒
Email:ourmis@126.com QQ:2322888 蜀ICP备05006790号