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

用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


IT基础设施与运维论坛:IT基础设施及运维经验分享 记华为HCC2013 Day1:发力高端存储 HCC 2013虚拟化论坛:虚拟化未来发展方向 Windows 8操作系统市场份额增至7.41% Windows 7仍最受欢迎 【开源专访】Sea.js创始人玉伯的前端开发之路 SDCC 2013:阿里周宝方谈“去IOE”战略及实施 百度和高德:最后谁是地图的王者? 【CTO论道】瑞智和康CEO陶建辉:软硬结合是消费电子新潮流 10大高效率原型设计工具 JIRA与敏捷:李小龙教给我们的敏捷开发之道 百度开放云:Light Up The World,与开发者共享云未来 有胆你就来!11个在线编码大赛 CTO如何避免决策失控:第一步-定义角色 后机械硬盘时代,那些引领风骚的闪存初创公司 致远文杰:传统企业如何实现移动化转型? 记华为HCC2013 Day2:SDN开放编程系统OPS打造生态圈 HCC2013:华为FusionCube融合至简,性能至优 已确认Stephen Elop候选微软下任CEO 英语对于软件开发者来说到底有多重要? SDCC 2013中国软件开发者大会成功落幕 新浪微博宋琦:PHP在微博优化中的“大显身手” 8月份浏览器份额:IE浏览器PC端出现反弹 移动端跌出前五 如何让Ruby项目速度提升10倍 跨平台进行到底:Facebook发布Unity SDK 云薪资管理初创公司ZenPayroll:年处理薪资超1亿美元,获多位知名CEO力挺 Twitter开源Summingbird:近原生编码下整合批处理与流处理 亚马逊推Matchbook 欲将顽固纸质书读者拉向电子书 Broadcom为可穿戴设备推新开发平台WICED 再战江湖 New Kodak还牛不牛? 郭理靖:公、私有云架构异同点与难点 美化代码的15个代码语法高亮工具 传值,三个窗体之间的传值,在线,请回答 斑竹,请教你一个问题:ASP与报表... 体提议意见 数据库中正常,在JSP中显示好象为十六进制数,帮忙解决 如何获取硬盘序列号? 请教高手,这个效果用CSS该如何实现? win2k如何实现桌面共享!! 可不可以怎么做? 当前提供者不支持索引必需的界面 没有马甲的来这里报到! linu和windows都不能启动了,怎么办,急急急!!! 请问,在PB中怎么为自定义窗体类定义一个虚拟方法? 熟悉memfile的朋友请进 php调VB程序?着急! vb 访问另一台sql server 的问题? 谁有flashmx,dreamwerver mx,firework mx 的注册吗。有100分 很急的问题? 断点无效?? 想给自己买一个数码相机做新年礼物!但对选中的品牌不是很熟!请师哥师姐给点建议!!! 如何对视图连接的表进行数据插入?? 谁会替用户负责?用“小灵通”还是小心为妙 做过考勤管理的请进………… 简单问题,麻烦各位高手!!! 请问delphi5中有没有delphi6中的object treeview功能 哪有关于网络安全方面的资料? 三层MIS中的中间件怎么用COM或EJB来实现. 请问哪里的个人主页控件支持JSP? 再次请教一个有关DataGrid不能显示而令人头晕的问题(在线等待)! 做过考勤管理的请进………… 在ASP.NET中怎样实现语句加入引用? 请问下面这个问题应该怎么解决最好?关于处理网页中的数据的 使用VB6自带的Sample中自动化示例应用程序时的一个问题 那位高手知道怎样实现曲线分析图... 一个简单SESSION 问题,请解决。在线等,没分了不好意思. 为什么在asp中使用ADODb的Connection对象的方法时不能使用事务处理 ====寂寞啊!谁帮介绍一个女孩啊(15-18)岁的!!万分感谢!==== 高分请教大虾,关于搜索的问题?。。。。 100分请教一个简单的问题?? runtime在JAVA中解释应该是什么意思? SCO上的ORACLE7建库?SOS 大家来看看,超级Bug?用DBExpress连接MSSQL,执行存储不能返回值,谁能解决,200分 高分请教,谢谢了/。。。。 我在程序中使用了MSXML,可是在干净的win98下无法运行,请问需要安装什么? 救急: SQL server的数据恢复 关于分辨率的问题。 在vb.net中能做dll吗?请大家可参与 下面的函数怎样声明? 能直接用alter语句修改某个字段的类型和长度吗? 如何做pci 插卡? 关于datalist绑定问题 我的前途???欢迎大家发表意见! 急求 巴西女医生为腾出病房床位 谋杀300上海男子杀害两亲属 又砍伤多名小学生高一男生寝室照走红网络 打造成“小资台湾宜兰罕见冷泉寻找代言人 可获奖金温州市委秘书长吴开锋被曝有婚外情 2钓鱼台国宾馆选拔服务人员 阵势犹如选香港举行“枕头大战”场面壮观习近平在海南会见多国总统 彭丽媛出席杭州举办健美健身锦标赛 上演力与美的杭州举办健美健身锦标赛 上演力与美的威廉王子携凯特访问苏格兰 遭可爱小萝神秘富二代与郭美美互掐 晒银行99亿高清:人民日报新大楼被吐槽造型别致凤凰古城收费引商户集体罢市抗议 官方张紫妍自杀前最后一部影片曝光 三级片钱江潮“一潮三看” 游客可追潮25公长沙一餐厅要求员工穿比基尼上班F1上海站举行车手巡游 赛车宝贝火辣广东茂名鸡价因禽流感大跌 市民疯狂抢美国波士顿马拉松赛发生爆炸窦靖童on the beach素颜自炒杏仁宫鲁鸣:国手要奉献,归化球员威胁中国先把孩子骗出家门再向家长谎称绑架索要小雪-养生的奥秘!I/O大会总结:一场没有高潮的发布会云南安宁一家三口住所遇害 尸体疑被分牛肉手抓饭早报:谷歌I/O大会盘点 传荣耀7六德赫亚:西班牙赢得有些幸运咖啡可可奶酪蛋糕携程回应宕机事件:系员工误操作所致德媒:埃芬博格即将执教德乙球队看看年薪百万的人的实际生活水平AI:我、沙克和乔丹能完成82胜0负博斯克:挑兵选将面临幸福的烦恼当心2015年10大投资陷阱!一家三口将纠纷者强行塞入车内 交警设最害怕的是找不到一个能说说话的人2015新浪商业思想OpenDay 长丰一男子“死性不改” 强奸抢劫三次联想TechWorld大会:联想秀肌
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘