📄 m57.htm
字号:
<html>
<head>
<title>VB教程</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<p align="center"><script src="../../1.js"></script></a>
<body bgcolor="#ffffff" leftmargin="5" topmargin="1" marginheight="5" marginwidth="5">
<div align=center>
<table border=0 cellpadding=0 cellspacing=0 width=680 align="center">
<tbody>
<tr>
<td bgcolor=#000000 height=9>
<div align=center class=H1> 功能强大的界面制作控件组--Common家族</font> </font> </font></div>
</td>
</tr>
<tr valign=top>
<td class=H1 height=76>
<p align="left"> <br>
</font></p>
<span
class=ourfont> <span class="unnamed1">这里我要向您推荐一组高级的ActiveX控件—Common家族。这一家子共有八个兄弟。他们习性相似,却各有不同的本领。利用他们可以为您的应用程序添加漂亮的界面,强大实用的功能。比如,带有图标的快捷工具条、进度指示器等。而这并不复杂,您只需看完下文,一切立即搞定。<br>
<br>
<strong>一、图像资料中心----ImageList</strong><br>
<br>
ImageList控件是一个向其它控件提供图像的资料中心,它包含了一组ListImage对象即一组图像的集合,该集合中的每个对象都可以通过其索引或关键字被其他控件所引用,但控件本身并不能单独使用。<br>
ImageList控件可以和任何具有Picture属性的控件一起使用,如PictureBox、ListView、ToolBar、TabStrip和TreeView等控件。<br>
ImageList控件的主要属性有ImageHeight属性,ImageWidth属性,MaskColor属性和UseMaskColor属性。<br>
ImageHeight属性和ImageWidth属性<br>
这两个属性返回或设置ImageList控件中ListImage对象的高度和宽度。可以在添加第一个ListImage对象之前预先设置ImageHeight和ImageWidth属性。如果没有预先设置,则第一个添加到集合中的ListImage对象保持原图大小,其后添加的所有ListImage对象都被强制与第一个ListImage对象大小相同。<br>
<br>
<strong>MaskColor属性</strong><br>
该属性返回或设置在ImageList控件的图形操作中透明的颜色。具体地讲,就是设置一种颜色,使ImageList控件的图形中的此种颜色变为透明。<br>
<br>
<strong>UseMaskColor属性</strong><br>
该属性决定是否能在ImageList控件中使用MaskColor属性。<br>
<br>
<strong>Add方法</strong><br>
要给ImageList控件添加图像,在设计时,可以用“ImageList控件属性”对话框图1;在运行时,可以用Add方法。<br>
Add方法的语法如下:<br>
Add(index,key,picture)<br>
Index是可选的参数。它是一个整数,指定了要插入的ListImage对象的位置。如果没有指定index,ListImage对象将被添加到ListImages集合的末尾。<br>
Key也是可选的参数。它是用来标识ListImage对象的唯一字符串。ImageList控件用该值来检索某个特定的ListImage对象。<br>
Picture是必需的参数。它指定了欲添加到集合中的图片。<br>
Add方法的具体用法如下例:<br>
Dim imgX As ListImage<br>
Set imgX=ImageList1.ListImages.Add_<br>
(,,LoadPicture("filename"))<br>
Set imgX=ImageList1.ListImages.Add(,,Picture1.Picture)<br>
<br>
<strong>Overlay方法</strong><br>
除了存储Picture对象外,ImageList控件还可以在把图像赋值给其它控件前,对它们执行图形操作。例如,Overlay方法可以从两个不同的图像出发创建一个复合图像。该方法从一个ListImages集合绘制一幅图像,叠加在另一幅上面,并返回结果。它的语法如下:<br>
Overlay(index1,index2)<br>
index1参数是必需的。它是一个整数(Index属性)或唯一的字符串(Key属性),指定了将被叠加的图像。<br>
index2参数也是必需的。它指定了将被绘制在由index1指定的对象上的图像。该图像中与MaskColor属性相匹配的颜色被设置成透明的。如果没有任何颜色与之匹配,该图像将不透明地绘制在其它图像上。<br>
<br>
下面,我们介绍一个具体的例子。<br>
先在窗体上放置一个ImageList控件和一个Image框,然后添加如下代码:<br>
<br>
Private Sub Form_Load()<br>
Dim imgX As ListImage<br>
'加载位图<br>
SetimgX=ImageList1.ListImages.Add(,"No",_<br>
LoadPicture("graphics\bitmaps\assorted\Intl_No.bmp"))<br>
SetimgX=ImageList1.ListImages.Add(,,_LoadPicture("graphics\bitmaps\assorted\smokes.bmp"))<br>
SetimgX=ImageList1.ListImages.Add(,,_LoadPicture("graphics\bitmaps\assorted\beany.bmp"))<br>
ScaleMode=vbPixels<br>
'设置MaskColor属性<br>
ImageList1.MaskColor=vbGreen<br>
'设置窗体的BackColor为白色<br>
Form1.BackColor=vbWhite<br>
End Sub<br>
<br>
Private Sub Form_Click()<br>
'静态变量,用于图像计数。<br>
Static int Count As Integer<br>
'如果变量超过ListImages.Count的值则重置变量为2<br>
If intCount>ImageList1.ListImages.Count<br>
Or intCount<1 Then<br>
intCount=2<br>
End If<br>
'把ListImage(1)叠加在ListImages2-3之上<br>
Image1.Picture=ImageList1.Overlay(intCount,1)<br>
intCount=intCount+1<br>
'创建变量来保存ImageList.ImageWidth的值<br>
Dim intW<br>
intW=ImageList1.ImageWidth<br>
'为了引用方便把图像绘制到窗体上,<br>
'用ImageWidth值来间隔图像<br>
ImageList1.ListImages(1).DrawForm1.hDC,0,0,imlNormal<br>
ImageList1.ListImages(2).DrawForm1.hDC,0,intW,imlNormal <br>
ImageList1.ListImages(3).DrawForm1.hDC,0,intW*2,imlNormal <br>
End Sub<br>
<br>
在本例中,图片Intl_No.bmp的背景色原来是绿色,由于MaskColor也设置为绿色,所以图片的背景色变为了透明。<br>
为了节约系统资源,可以把一个或多个ImageList控件与其它的Windows95公共控件关联。这些公共控件包括ListView、ToolBar、TabStrip和TreeView控件。为了关联在一起,对于ListView控件来说,必须将Icons和SmallIcons属性设置为ImageList控件;对于TreeView、TabStrip和Toolbar控件来说,必须将ImageList属性设置为ImageList控件。<br>
一旦ImageList与某个控件相关联,就可以在过程中用Index属性或Key属性的值来引用ListImage对象了。<br>
<br>
<strong>二、多彩工具条----Toolbar</strong><br>
<br>
在大多数应用程序中都有工具栏。工具栏包含有一些按钮,这些按钮与应用程序菜单中各项的按钮对应,为用户访问应用程序的最常用功能和命令提供了图形界面。在VB5.0中,可以用Toolbar控件来实现这一功能。<br>
Toolbar控件包含一个按钮(Button对象)集合,可以通过将Button对象添加到Buttons集合中的方法来创建工具栏。在设计时可用Toolbar控件的属性页中的“按钮”选项卡上的“插入按钮”和“删除按钮”来插入和删除按钮,并设置按钮的索引、标题、关键字、样式、标记、工具提示文本和图像属性;当然,也可以在运行时用语句指定这些属性。<br>
<br>
样式(Style)属性<br>
该属性决定Toolbar控件中每个按钮的外观和状态。<br>
使用时请注意必须将具有ButtonGroup样式的按钮分组。为区分组,应该将所有具有相同样式(ButtonGroup)的Button对象放置在两个有分隔符样式的Button对象之间。<br>
Button对象为占位符样式时,可以将其它的控件放置在工具栏上。例如,为了在设计时将下拉组合框放在工具栏上,可添加一个具有占位符样式的Button对象,并把它调整到ComboBox控件的大小。然后将ComboBox放置在占位符处。<br>
每个Button对象都可有文本或图像,或者兼而有之。图像是由相关联的ImageList控件提供的,可以用Image属性为每个Button对象添加一幅图像;文本则是通过设置每个按钮的Caption属性来显示的。<br>
ImageList属性<br>
该属性返回或设置与控件相关的ImageList控件。控件要使用该属性,必须先将ImageList控件放在窗体上,然后在设计时可在相关控件的“属性页”对话框中设置ImageList属性。在运行时可以用以下语句来设置:<br>
Set ToolBar1.ImageList=ImageList1<br>
<br>
ShowTips属性<br>
该属性决定是否允许显示每个按钮的帮助提示。<br>
<br>
Wrappable属性<br>
该属性决定当重新设置窗口的大小时,Toolbar控件按钮是否自动换行。<br>
<br>
Customize方法<br>
该方法调用“自定义工具栏”对话框,该对话框允许用户在Toolbar控件上重新安排或隐藏Button对象。<br>
当Toolbar控件的AllowCustomize属性为True时,双击工具栏后就会调用Customize方法显示出对话框。<br>
我们可以限制用户自定义工具栏的权限。例如,下列代码仅在用户给出密码字时才允许自定义工具栏:<br>
<br>
Private Sub Command1_Click()<br>
If InputBox("Password:")="WYT" Then<br>
Toolbar1.Customize <br>
'调用Customize方法。<br>
End If<br>
End Sub<br>
<br>
SaveToolbar方法和RestoreToolbar方法<br>
这两个方法的作用分别是把用Toolbar控件创建的工具栏的状态保存在注册表中和将工具栏恢复到原先保存的状态。它们的语法为:<br>
Toolbar1.SaveToolbar(keyAsString,subkeyAsString,valueAsString)<br>
Toolbar1.RestoreToolbar(keyAsString,subkeyAsString,valueAsString)<br>
这三个参数都是必选参数。其中key是一个字符串表达式,指定了保存的信息在注册表中的关键字;subkey也是一个字符串表达式,指定了在注册表中key参数下的一个子键;value同样是一个字符串表达式,指定了保存在subkey中的Toolbar信息。<br>
下列代码将Toolbar1的状态信息保存在HKEY_USERS\.DEFAULT关键字下的WYT子关键字中:<br>
Toolbar1.SaveToolbar"","WYT","Toolbar1"<br>
如果指定的子关键字不存在,该语句将在注册表中创建新的子关键字。因为在自定义工具栏之后要发生Toolbar控件的Change事件,所以在大多数情况下,可将上述代码放置在工具栏的Change事件中。<br>
下列代码为当前用户恢复Toolbar控件的设置值,不过要确定先前已经用SaveToolbar方法将它们保存起来了。<br>
Toolbar1.RestoreToolbar"","WYT","Toolbar1"<br>
注意当使用RestoreToolbar方法时,任何不包含ImageListListImage对象的工具栏按钮都将消失。用户可再次使用自定义工具栏对话框上的复位按钮使它们可见。<br>
为了在运行时添加和删除按钮,可以用Add方法,Clear方法和Remove方法。<br>
<br>
Add方法<br>
该方法将Button对象添加到Buttons集合中,并返回对新创建对象的引用。<br>
下面给出一个简单的程序代码,具体介绍一下如何在运行中添加按钮和图像以及对Click事件作出反应。<br>
Private SubForm1_Load()<br>
'为ImageList创建对象变量<br>
Dim imgX As ListImage<br>
'将图片加载到ImageList控件中<br>
Set imgX=ImageList1.ListImages.Add(,"open",_<br>
LoadPicture("Graphics\bitmaps\tlbr_w95\open.bmp"))<br>
Set imgX=ImageList1.ListImages.Add(,"save",_LoadPicture("Graphics\bitmaps\tlbr_w95\save.bmp"))<br>
Toolbar1.ImageList=ImageList1<br>
'为Button创建对象变量<br>
Dim btnX As Button<br>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -