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

用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


innerWidth()-JQuery API offset()-JQuery API outerHeight()-JQuery API outerWidth()-JQuery API scrollLeft()-JQuery API scrollTop()-JQuery API width()-JQuery API ajaxForm(object)-JQuery API ajaxSubmit(object)-JQuery API clearForm()-JQuery API clearInputs()-JQuery API fieldSerialize(true)-JQuery API fieldValue(successful)-JQuery API formSerialize(true)-JQuery API formToArray(true)-JQuery API resetForm()-JQuery API $.recallDroppables()-JQuery API $.SortSerialize()-JQuery API Draggable(hash)-JQuery API DraggableDestroy()-JQuery API Droppable(options)-JQuery API DroppableDestroy()-JQuery API Sortable(options)-JQuery API SortableAddItem(elem)-JQuery API $.meta.setType(type, name)-JQuery API data()-JQuery API disableTab(position)-JQuery API enableTab(position)-JQuery API tabs(initial, settings)-JQuery API triggerTab(position)-JQuery API triggerTab(position)-JQuery API 急问Flash. ADOCE怎样访问excel数据表格? 请 ccmoon(IzuaL) 和 cloudchen(陈系上) 进来领分, 我该怎么做? 关于将输入字母转换为大写的问题! 谁给我解释这个sql语句! 怎么将sql server 6.x 的备份文件,恢复到sql server 7上 请教pb中有没有模式窗口和非模式窗口的概念?? 设备内容句柄在Delphi中有这个类吗?如何表示? hxzhappy(冰雨)快来接分 请问在contexMenu控件中show方法如何写 请问用VC,如何在WIN2000下连接一个SQL数据源? 入参与出参 关于国外发布的软件,可以使注册用户在线或取注册码! win2000下怎样建立代理服务器 有关DBGrid的问题。 在其他版看到一个很有意思的贴子“如果是你招聘人,你会不会招和自己技术,资历差不多的,甚至超过自己水平的?”欢迎大家讨论。 急!关于innerhtml的错误? hxzhappy(冰雨)快来接分 在线求助,急 请教各位,我的sybase的数据库的log设备(即syslogs表)最近增长很快,每天增长40多兆,如何解决??? 想做一个网络代理上网 c语言中三维数组的问题??? 求助:word文件加密后忘记密码如何打开原文件? 请教 : photoshop 中--highlight shadow midtone 提问,非高手勿入,打印的问题,100分,不够另加 关于oracle预留字作字段名的问题。 ● 求助,2000 Professional一登录就自动注销,怎么解决? 一个很棘手的问题? 谁给我解释这个JS函数 請高手幫改寫一段datagrid程序. (100分相送) (2)菜鸟问题!!容易拿分呀!! 如何在SQL SERVER上实现ORACLE中的package的功能 对windows编程,如何控制鼠标箭头阿 在2000下,希望不同的账号登陆,文件的可见属性不一样,能做到吗? 页面元素隐藏的问题 急 读文本出现乱码??? 高分求演示制作软件一个,以前知道lotus123可以做,可是找不到下载!!! 如何使窗口最大化? 请问:怎样使jar包里的类能读取同在此jar包中的一个xml文件 关于table 如何远程执行ORACLE上的存储过程? 有关toolbutton的用法 公布我公司的MS 2000技术支持客户号,呵呵! 关于使用组件是出现“没有注册类别” 高分求数据库操作类(查询、更新、事务等),共同提高。分不够可载开贴! error C2065: 'CMyPointDoc' : undeclared identifier 请帮解决! open_cusors问题,超过了open_cusors的最大值!! win2000 professional and win2000 advance server 如何判断某一个TEDIT获得了焦点???? 怎么不能重复的启动、停止钩子 带合的成语有哪些成语 personal 和individual的区别 金属棒ab、cd与足够长的水平光滑金属导轨垂直且接触良好,如图,金属棒ab、cd与足够长的水平光滑金属导轨垂直且接触良好,匀强磁场垂直导轨所在的平面.ab棒在恒力F作用下向右运动,则 abdca 把一个正三角形分割成9个小正三角形,画出草图 电热水袋加热时间过长会不会有危险? 草图大师 怎么画不分割面的线从面上穿过的线都被切割成几段,怎么才能一下子过去不分段啊 Person的用法、person 的.用法....与People有什么不同.近义词是那些? a big person和a large person的用法是什么看big和large时被这句话绕昏了:a big person 未必large,相反a large person未必big. unique和individual有什么区别?用法有什么不同? 什么是植物的有性世代和无性世代 我是真的爱你 粤语怎么写 巴基斯坦塔利班头目死于美无人机空袭 中朝俄荣膺第14届中国吴桥国际杂技艺古巴宣布取缔私营电影放映厅报告称中国超越日本 成韩国材料零部件中国珠算备选“非遗”报告称中国超越日本成韩国材料零部件最美无人机再次出手 巴基斯坦塔利班首领日媒:日俄防长会议谈及钓鱼岛 集体自中国珠算备选“非遗”俄一少年足球队大巴撞车致一名教练死亡朝鲜海军军官执行任务时殉职 金正恩前[美丽河北]武强周窝音乐小镇启动军歌饶阳刑警深挖线索 抓获一涉嫌文物盗窃[美丽河北]周窝音乐小镇优化设施 打中国成为全球葡萄酒贸易最大引擎组图:广西打造民族风情夜 点燃香港美新三板做市连续三日上涨润邦股份主力洗盘原因已查明,后期有望出奇制胜的LG,居然把键盘做成了一根从途虎三次重磅合作 看2016汽车后油价“阿斗”扶不起 ,产油大国已出事济南小吃黑名单,没有最黑只有更黑
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘