说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

用Visual Basic设计三维图形按钮

HTML文档下载 WORD文档下载 PDF文档下载
用Visual Basic设计三维图形按钮

  Visual Basic是一种非常有效的编程工具,它简单易学,功能强大。世界上百分之八十的Windows应用程序都是用它编写的。本文仅在这里讨论怎样用Visual Basic编制一个三维图形动态按钮。


  三维动态按钮,就是在窗口中凸起显示的按钮。当用鼠标点击它时,变为凹下显示,当鼠标按键松开时,又恢复为凸起显示。还可以为它设计一个提示信息,当鼠标移至按钮上面时,显示在窗口的下端。Visual Basic下的Command控件虽然也是三维显示的,但可惜不能在按钮上设置图案。


  首先,需要两个图标,这两个图标图案一样,只是一个为凸起显示,另一个为凹下显示。凸起显示的图标左、上两边线为亮线条,右、下两边线为暗线条。凹下显示的图标则刚好相反。Visual Basic已经在VB\BITMAPS\TOOLBAR3子目录下为用户准备了一些现成的三维按钮。如果它们不能满足你的愿望,就需要自己设计图标了。图标可以用Windows的画笔软件Paint制作成BMP位图文件,也可以用Borland C下的Work Shop软件制作成ICO图标文件。建议大家用前者,这样更灵活方便一些。不过,千万记着将图案缩放至所需要的大小(用鼠标箭头点住位图四周几个边界缩放点拖动即可)。否则,您的按钮可能大的将充满整个格式窗口。较简单的方法是打开一个Visual Basic现有的三维位图,在上面大肆修改以后,换一个文件名存盘。假定,你的凸显位图文件名为3D-up.bmp。凹显位图文件名为3D-dwn.bmp。


  现在来设计三维按钮控件。Image控件和Picture控件均可用于制作三维按钮。但Image控件效果较好一些。假设你的三维按钮控件名为Image1。设置其Picture属性为C:\....\3D-up.bmp。三维按钮事件的过程程序可以有两种方法编程:


1. Sub Image1_MouseUp (Button As Integer, Shift As Integer, X As Single, Y As Single)


  image1.Picture = LoadPicture("C:\......\3D-up.bmp")


  End Sub


  Sub Image1_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)


  image1.Picture = LoadPicture("C:\......\3D-dwn.bmp")


  End Sub


  Sub Image1_Click ()


  [用户按钮执行程序]


  ......


  ......


  End Sub


  另一种方法是:


2. Sub Image1_Click ()


  image1.Picture = LoadPicture("C:\......\3D-dwn.bmp")


  [用户按钮执行程序]


  ......


  ......


  image1.Picture = LoadPicture("C:\......\3D-up.bmp")


  End Sub


  如有必要,可参照上面程序再编制一个双击按钮事件过程。


  当鼠标移到按钮上面时,在格式窗口下端显示一行提示信息的设计方法是:在格式窗口最底部增加一个标签控件Label1,设置其Caption属性为空。编制按钮事件过程如下:


  Sub Image3_MouseMove (Button As Integer, Shift As Integer, X As Single, Y As Single)


  Label1.Caption = "<提示信息......>"


  End Sub


  别忘了当鼠标移出按钮时擦掉提示信息。编制格式事件过程:


  Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)


  Label1.Caption = ""


  End sub


  除非你把格式边界类型BorderStyle定义为0-None、3-Fixed double类型或者1-Fixed Single类型外加取消最大化按钮和最小化按钮(将格式的MaxButton、MinButton属性设置为False)。否则,当用户改变格式窗口大小时,你的提示信息有可能不在窗口的底部、或者短于窗口宽度甚至丢失,所以提示信息的位置和长度应随着窗口的变化而改变。具体编程如下:


  Sub Form_Resize ()


  label1.Top = scaleheight - label1.Height


  label1.Width = scalewidth


  End Sub


Gungho热潮正在逐渐消退? Thalmic创始人专访:穿戴式体感设备MYO背后的开发故事 移动周报:GSMA各种神器,Qt 5.1,Android 4.3,本周惊喜多多! 奇虎360Web平台部基础架构团队访谈:开源线上数据库中间件Atlas 化繁为简:UC优视发布“UC+”开放平台战略 路过大侠请留步!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1 DB2客户端打包安装? 将图片上传到数据库问题! 关于一个API的问题。急呀。老板叫我这个星期搞定。 SQLServer2000安装问题请教!! 怎么用java打开dbf格式的文件,修改其中的内容保存,它跟读写txt文件有区别吗?? 论坛带宽扩容:已经由共享10M变为独享100M。 请问哪里有Sybase11.9下载???急! server to server 方式如何提交一个新的页面 排球比赛队员位置轮换到底是怎么进行?是依次顺时针么 如何理解排球比赛中的队员位置错误 如果输出那里电容和喇叭串联,剩下的电阻和电容串联之 功放机的电流声很大,是由环牛变压器干扰的,在喇叭上 排球中运动员的位置有哪些? 排球队员的位置画一个图┏ ━ ┓◎ ◎┃ ◎ ◎ 若椭圆x^2/16+y^2/9=1上每一个点P(x P(x,y)是椭圆x∧2/16+y∧2/9=1上一 甲乙两人在操场跑步,如果两人同时同地相背而跑,乙跑 马来西亚移民局前总监被判处贪污罪名成Facebook首次承认传闻:年轻人日政府开发海底资源动作迟缓引日研究机日超2成地震重建预算未使用 政府被指印度外长访澳为三年前留学生在澳被杀案捂脸!李晨耿直坦白和范冰冰的床事,那周末玩嗨 | 你是《芈月传》里的谁?你离手机摄影高手只差这四条秘诀新手必学:10个拍出漂亮人像相片的技结婚,为省点钱找了个不靠谱的摄影师,相气大宗师妖魔房产中介菁英战士至尊灵修黑花记补完嵊泗渔家乐旅游温泉镇旅游大觉寺旅游水流云在旅游北京饭店旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘