在VB中制作图标按钮的四种方法_第1页
在VB中制作图标按钮的四种方法_第2页
在VB中制作图标按钮的四种方法_第3页
在VB中制作图标按钮的四种方法_第4页
在VB中制作图标按钮的四种方法_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、在VB中制作图标按钮的四种方法2010-07-1917:31发信人:huanghm (东方不败),信区:Program标题:V B中图标按钮的制作发信站:深大荔园晨风站 (Tue Jan 1 31 1:11:0 81998),现在大多数Wi ndows应用程序的功能都比较丰富,相应的菜单结 构也比较复杂。一些操作命令往往要打开好几层菜单。尤其是一些 常用的操作命令,因其使用较频繁,即使仅打开一层菜单,从中选择 一项也是比较麻烦的。因此现在绝大多数 Windows应用程序中除了菜 单之外,还配备了工具栏。工具栏中有与常用菜单命令相对应的按 钮,按这些按钮的效果和选择菜单命令的效果完全一样。工具栏

2、中 的按钮和普通按钮不同的是,它们不用文本字符串,而是用图标来 标明按钮的功能。这种图标按钮的好处是省地方,菜单命令往往比 较冗长,而工具栏提供的空间又十分有限。使用图标按钮最大的好 处还在于其直观形象性,这与 Windows图形用户界面(GUI)方便用 户、简化操作的目标是一致的。Windows系统提供的标准按钮(如OK、Cancel等)中只能显示文本字符串。在VisualBasic (以下简称为VB)中,按钮是使用工具箱中的命令按钮控件 CommandButton来实现的。CommandButton使用 的 是 W i ndows系统提供的标准按钮控件,因而无法装入图标。下面介绍在VB中实

3、现图标按钮的几种方法。使用标准控件实现图标按钮V B的标准控件中,能够装入图形的只有Image (图像)和PictureBox (图片框)两种。Image的功能较简单,占用系统资源较 少。Pictu reBox的功能很丰富,可以将它看作是Image的一个 超集” 它占用的系统资源当然就要多一些。为了利用可装入图形的控件模 拟图标按钮的功能,首先应比较一下它们各自所能够接收到的事 件(如表1所示)。表1中打勾(V)的表示该控件提供了相应的事件驱动过程接口, 打叉(X)的则表示该控件没有提供,控件不接收相应的事件。因为是 要模拟 CommandButton的 功能,所以Image和 Picture

4、Box的 其它事 件没有 列岀。Command Button 的 事件 I m age Pi ct u r eB oxClick VVDragDrop VVKeyD o w n xVKeyPr ess xVKeyU p xVL ost F oc u s xVMouse Down VVM o u se M o ve VVMouseUp VV表 11 mage 和 PictureBox 与 Com m and B u tt on 中相同 的事件 从表1中可 以看出,PictureBox具有 CommandButton中所有事件的接口,因而 可以完 全模拟 CommandButton的 功能。Com

5、m andButton的 某些事 件在Image中接收不到。对于一般应用来说,我们往往只对 CommandButton的 Click事件过程编程,因此Image也可以用于模拟CommandButton,而且能够满足大多数应用的需要。注意,在没有配 备鼠标的系统中,因为只能使用键盘作为输入设备,而Image又没有 键盘事件的接口,这时就只能用PictureBox 了。VB安装到硬盘上之后,在VB目录下提供了丰富的图形库。其中包括位图(Bitmap,在BITMAPS子目录下)、图标(Icon,在ICONS子目录 下)和图元(Metafile,在METAFILE子目录下)。每种图形又按类分别 存储在

6、不同的子目录下。在图标按钮的制作中,我们可以使用BITMAPS TOOLBAR3子目录下的位图。该目录中存储了常用工具栏 中的按钮的位图,每种按钮一般有三个位图文件,分别对应按钮在松开、按下和无效时的状态。例如,CUT-UP. BMP、CUT-MDS.BMP和CUT-D IS. BM P分别对应剪切(cut)按钮在松开、按下和无效时的状 态。因此,我们可让按钮在松开时装入*- UP. BM P,按下时装入*- M D S. B M P,按钮无效时装入* - D I S. B M P。可以编写如下的相应事件 过程代码(以PictureBox实现的剪切按钮为例):SubPicture1_Mouse

7、Down(ButtonAsl nteger,ShiftAsl nt eg er, X AsSi n gl e, Y A sSingle)Picture1.Picture=LoadPicture(C: V B B I T- M A PS TOO L B AR3 CUT-MDS. BMP)按下鼠标按钮时,装入按钮被按下时的位图E n d Su bSubPicture1_MouseUp(ButtonAslnteger,ShiftAslnteger,XAsSingle,YAsSingle)Pictured Pi cture= LoadPicture(C: V B BITMAPS T00LBAR3 CU

8、T-UP.BMP)松开鼠标按钮时,装入按钮被松开时的位图E n d Su bSu b P i ct u r e 1_ C l i ck ()此处插入单击按钮时的处理代码E n d Su b如果需要设置按钮的无效状态,则可使用如下语句:Pictured Enabled = Fal sePicture1.Picture=LoadPicture(C: V B B I T- M A PS TOO L B AR3 C U T - D I S. B M P )装入按钮无效时的位图当按钮恢复为有效时,再使用下列语句:Pictured Enabled = TruePicture1.Picture=LoadPi

9、cture(C: V B BITMAPS T OOL B AR3 CU T-U P. B M P)装入按钮松开时的位图这样,我们就实现了用PictureBox模拟图标按钮。用Image模拟图标按钮的方法与此完全相同。在程序中,一般用一个PictureBox作为工具条,这里的 PictureBox作为容器(container) 控件,在 Pictu reBox中再加入各个图标按钮。这在多文档界面(MDI)中的主窗体MDIForm上尤其有必要,因为普通控件不能直接加入到MDIForm中,只有具备Align属性的 PictureBox才能加入到 MDIForm。二、使用扩充控件实现图标按钮VB的扩充

10、控件中有几种能直接支持图标的按钮。下面仅介绍其中的三种扩充按钮,即3D 命令钮 (3DCommandButton) 、 3D 组按钮 (3 DGrou p Push B utto n) 和动 画按钮 (AnimatedButton)。使用 这三种 控件制作图标按钮比起使用PictureBox或Image模拟的图标按钮要方便得多。在下面的介绍中,会给岀每种控件对应的文件名和控件的对象类型, 如果在工具箱中找不到该控件,则在VB的菜单命令弹岀的对话框中双击与该控件对应的文件名(一般在 Windows的SYSTEM目 下),即可将该控件加入到工具箱中。对于扩充控件接口的特性(属性、事件和方法),我们

11、仅介绍其 扩充的部分,与标准控件相同的其它接口则不再赘述。1、3D Comman dButton文件名为THREE D.VBX,对象类型为SSCommand,属性如表2所示 表2属性数据类型定义AutoSizelntegerO (缺省状态)不调整尺寸;1 把装入的图片尺寸调整为按钮的大小。如果装入的图片是一个图标(Icon)或按钮本身有标题,则该值不起作用;2 把按钮的尺寸调整为装入图片的大小。如果按钮本身有标题,则该值不起作用。BevelW idth I nteger按钮周围斜角的宽度,取值范围为010,缺省值为2。Fon t3D Integer设置标题的立体显示效果:0(缺省状态)无立体效

12、果;1略微凸岀;2 强烈凸岀;3 略微凹进;4 强烈凹进。Outlinelnteger确定有无边框,取值为 True (缺省状态)或 False。PictureI nteger位图或图标,不能是图元。RoundedCornersI nt eg er按钮是否为 圆角,取值为True (缺省状态)或 False。3DCommandButton 的属性3DCommandButton是一个本身具有 Picture属性的按钮,用它可装入一个图片,同时它还具有按钮的功能。3DCommandButton不能接收 Mouse Down和 MouseUp之类的鼠标事件,因此不能像PictureBox那样通过装入

13、不同的图片来显示按钮被按下和松开的状态。3D Com m an dButton之所以被称为3D ”,是因为它本身能够处理按钮按动时的三维视觉效果。用3DCom mandButton制作图标按钮时,只需装入一个按钮 松开时的图片(例如,CUT-UP. BMP)即可,其余的无需用户操心。2、3DGroupPushButton文件名为THREE D. VBX,对象类型为SSRibbon,属性如表3所示。属性数据类型定义AutoSizelntegerO(缺省状态)不调整尺寸;1把装入的图片尺寸调整为按钮的大小;2 把按钮的尺寸调整为装入图片的大 小。BevelW idth I nteger按钮周围斜角

14、的宽度,取值范围为02 (缺省状态)。GroupAll owAllUpI nteger是否允许同组内的所有按钮都处于松开的状态。取值为True (缺省状态)或False。当设置组中一个按钮的 GroupAllowAIIUp属性值时,本组其它按钮的 GroupAll o wA l l U p属性也被 自动设置为相同的值。GroupNum berInteger组号。取值为:0不属于任何组,可 由用户或程序代码任意开关;1 (缺省状态)99 按钮属于该组号定义的 逻辑组。若在处于同一逻辑组的所有按钮中按下某个按钮时,则另 外处于按下状态的按钮会被自动松开。O u 11 i n e I n t eg

15、er 同 3DCommandButton。PictureDi sabled I nteger 按 钮被禁 止 (E n ab l ed 属 性 为 False) 时 的 位 图。PictureDnI nteger按钮被按下时的位图。PictureDnChangeI nteger 女口 果 没有 指 定 PictureDn,女口 何 由 PictureUp 变换 出 PictureDn : 0PictureUp 不变;1(缺省状态)抖动 PictureUp。把PictureUp位图中与BackCo lor颜色相同的点每隔一个变成白色,这样就 产生了将该颜色加亮的效果;2将PictureU p位图

16、取反。PictureUpI nteger按钮松开时的位图RoundedCornersI nt eg er 同 3DCommandButton 3DGroupPushButton 的 属性 要 比 3DCommandButton 丰富 些, 一旦我们在设计阶段把按钮各种状态时的位图加载好,在程序中就可不必理 会它了。如果图形库中只有按钮松开时的位图,没有按钮按下时的 位图,则还可以利用PictureDnChange属性来加以弥补。3DGroupPushButton的另一个引人注目的特性是它能够对多个按钮进行逻辑分组和 自动控制,这一点无疑在实际应用中增添了更多的功能和更大的灵 活性。3DGrou

17、pPushButton是自锁式的,即按动后保持按下状态,而不是随鼠标键的松开而弹起。要想让按钮重新弹起,还需再按一次,这同 录音机上的暂停键相似。如果要让3DGrou pPushButton表现得和普通按 钮一样,随鼠标键的松开而弹起,则需对Click事件进行编程。3DGroup PushButton的Click事件过程与普通按钮稍有不同,其中增加了 一个整 型参数Value :SubGroupPush3D_Click(ValueAslnteger)Value可取值为True或False,分别代表按钮的状态是按下还是松开,3DGroupPush Button的 Value属性与此相对应。若在

18、Click事件过程中 加I 入语句:GroupPush3D. Value = False,贝 L可让 3DGroupPushButton 表现得 和普通按钮一样,随鼠标键的松开而弹起。3、A n i m at ed B ut ton文件名为 ANIBUTON.VBX,对象类型为 A n i Pu s h B u tt o n,属性如表4所示。属性数据类型定义CCB调岀文件中存储的图像和按钮属性信息。CCB把图像和按钮属性信息存入文件。Cl ear F i rst I n teger确定按钮切换到下一帧前是否清掉前一帧,取值 为 True 或 False 。Cl ickFilter Intege

19、r确定按钮的哪部分能检测到鼠标单击:0(缺省 状态)按钮的任何部位都能检测到鼠标单击;1-鼠标单击必须位 于标题文本上或图像框中才能被检测到;2鼠标单击必须位于实 际的图像框中才能被检测到;3鼠标单击必须位于标题文本上才能被检测到。Cycl eI nteger控制动画的播放周期:0(缺省状态)用户按动按 钮时播放动画的前半部分,按钮松开时播放后半部分,最后回到第一帧;1松开按钮时跳到下一帧,同时把Value属性值加1。如果按 钮处于最后一帧,单击时则跳回第一帧。这是每次播放一帧的多态 按钮;2第一次单击按钮时,播放动画的前半部分,同时把Value属 性值从1变为2 ;再次单击按钮时,播放后半部

20、分,按钮回到第一帧, 同时把Value属性从2变回1。因此,这是一种二态按钮。Frameinteger 设置 当 前 帧 。HideFocusBoxInteger是否隐藏表示输入焦点的虚线框,取值为True 或F a l se (缺省状态)。PictDrawM odeI nt eg er设置图像(位图或图标)在按钮中的绘画方式:0 -(缺省状态)用 PictureXpos和 PictureYpos属性值确定图像的位置,用TextPosi ti on属性控制标题的位置。这些属性用0100的标尺来控制X和Y的位置;1 -自动控制尺寸模式,按钮尺寸调整到能放下最 大图像或标题;2调整图像的尺寸,扩展

21、或压缩图像框以适应按 钮的尺寸。这时标题(如果有的话)总是显示在按钮的顶部(好像 T ext - Position 属性为 0 样)。PictureI nteger 同 Form、P i ct u r eB ox 等。PictureXposI nteger控制按钮中 图像的水平位置,取值为01 0 0。PictureYposI nteger控制按钮中图像的垂直位置,取值为0 1 0 0。Sp ec i a l Op I nteger触发一个特殊操作,当该属性取某个值时,该操作被触发。取值为:1 -模拟单击;其它值-无效。Sp eed I n t eg er设置间的延迟时间(毫秒)。取值范围为0 (缺省状 态)32 76 7。TextPositionlnteger确定标题的位置,同时也会影响图像的位置。取值为:0 -(缺省状态)标题位置由Text X p os和T ext Yp os确定,图像位 置由 PictDrawM ode、Pictu reX p os 和 PictureYpos 确定;1 -图像在左边,标 题在右边,标题的垂直坐标由Text Y p os确定;2 -图像在右边,标题 在左边,标题的垂直坐标由T ext - Yp o s确定;3 -图像在下边,标题在 上边,标题的水平坐标由TextXpos确定;4 图像在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论