
VB讲稿 第5章高级用户界面.ppt
186页2019/5/24,1,第5章,高级用户界面,2019/5/24,2,本章内容,5.1 计时器控件 5.2 图形图象类控件 5.3 列表框和组合框控件 5.4 水平和垂直滚动条控件 5.5 驱动器列表框、目录列表框和文件列表框控件 5.6 通用对话框控件,2019/5/24,3,5.1 计时器控件,计时器控件(Timer)是一种控制时间操作的控件,因为它可以间隔一定时间触发一个计时事件,实现对时间的控制 1、计时器的属性 2、计时器的事件,2019/5/24,4,1、计时器的属性,计时器控件主要属性有: 名称属性:缺省情况下的命名为TimerX(X=1,2,3,…) Enabled属性:值为True,被激活,开始计时,并在一定的时间间隔后触发计时器事件值为False,计时器被禁止2019/5/24,5,,Interval属性:计时器触发事件的时间间隔,单位是毫秒(ms,1/1000s),取值范围为0~65535ms 如果将Interval设置为1000,则表明每隔一秒钟将触发一次计时器事件 如果为0,计时器无效2019/5/24,6,2、计时器的事件,计时器只响应Timer事件 程序运行时,每隔一定时间,系统将触发控件的Timer事件,间隔的时间由Interval属性指定。
用户的任务就是在Timer事件中添加程序代码,使得程序在设定的间隔时间内自动执行Timer事件中的代码,以实现时间控制 注意: 计时器运行时不可见2019/5/24,7,计时器控件应用示例,【例5-1】: 在例3-6的基础上,为门诊挂号添加挂号的时间,即定时地在“门诊挂号”对话框中显示系统的时间2019/5/24,8,第1步:用户界面设计,打开例3-6“frmRegistry”的窗体是:,2019/5/24,9,,因此,只需在窗口内添加一个计时器控件和两个标签:一个用于时间显示,一个用于时间标示计时器,标签4,标签3,2019/5/24,10,第2步:设置属性,标签4属性: 名称属性:命名为lblTime; 计时器属性: Enabled属性:设为True,即程序启动后,开始计时; Interval属性:设为500,这样每隔0.5秒触发一次Timer事件,即表示每隔0.5秒就在标签4显示一次系统时间2019/5/24,11,计时器属性设置,2019/5/24,12,第3步:为计时器编写事件代码,2019/5/24,13,运行结果,,,,每隔0.5秒显示一次时间,程序运行时计时器隐藏,2019/5/24,14,5.2 图形图象类控件,图形图像类控件有 : 1、图片框控件(PictureBox) 2、图像框控件(Image) 3、形状控件(Shape) 4、直线控件(Line),2019/5/24,15,1、图片框控件,图片框控件的基本功能是显示各种图形。
有两个基本问题: (1)图片框控件的属性 (2)图片框控件的应用,2019/5/24,16,(1)图片框控件的属性,名称属性: 缺省命名为PictureX(X=1,2,3,…) CurrentX和CurrentY属性: 设置或返回下一次打印或绘图方法的水平坐标和垂直坐标只能在代码窗口指定 DrawMode属性: 返回或设置绘图方法的输出外观取值1到16 ;,(1)图片框控件的常用属性,2019/5/24,18,关于绘图模式DrawMode的说明(见表5-1),DrawMode属性决定输出的图形的色彩 决定的原则是: 该属性将所画图形的像素(或称画笔)与屏幕上的背景像素进行比较,然后进行按位的“and、or、not、xor等”逻辑运算例如DrawMode的常数是vbMergePen(值为15)就表示进行“or”运算,产生一个新的颜色值在屏幕上把图形显示出来; 而属性常数是“vbNotMergePen”(值为2)则表示在前者基础上再进行not“运算,所以显示的颜色与前者相反2019/5/24,19,(2)图片框控件的应用,图片框控件不仅可以通过picture属性接受和显示来自通过加载来得图形,更重要的是可以通过调用系统的各种方法,实现各种图形的显示: Circle方法 Line方法 PaintPicture Print方法,2019/5/24,20,Circle方法,Circle方法的作用: 用于在图片框内绘制圆形、椭圆形或弧形。
调用格式: 图片框名. Circle [step] (x, y), radius, [color, start , end, aspect] (各参数的含义参见表5-2),2019/5/24,21,Circle方法可实现:画圆、椭圆、圆弧,[object.]Circle [Step](x, y), radius, [color], [start], [end] [, aspect],2019/5/24,22,画圆: Picture1.Circle (1000, 1000), 1000,vbBlue 画椭圆: Picture1.Circle (1500, 1000), 1000,vbBlue,,,3 画圆弧: Picture1.Circle (1000, 1000), 1000,vbBlue,0,1,例如:,2019/5/24,23,画圆:,画椭圆:,2019/5/24,24,画圆弧:,画扇形:,2019/5/24,25,Line方法,Line方法的作用: 用于在对象上绘制直线和矩形 调用格式: 图片框名. Line [step1] (x1, y1) [step2] (x2, y2), [color], [B] [F] (各参数的含义参见表5-3),2019/5/24,26,Line方法格式说明:,,object.Line [Step] (x1, y1) [Step] (x2, y2), [color], [B][F],终点坐标,,画矩形,,填充矩形,,2019/5/24,27,例如:,画直线: Line (100, 100)-(2000, 100), vbBlue 画矩形: Line (100, 500)-(2000, 2000), vbRed, BF,2019/5/24,28,Circle和Line方法应用示例,[例5-2-1] :设计Picture调用Circle和Line方法实施画图的程序。
要求是: 用户界面上有一个图片控件框,多个命令按钮,单击不同的按钮画出不同的图形2019/5/24,29,第1步:设计界面,2019/5/24,30,第2步:为每个按钮编写代码,画圆:,2019/5/24,31,画椭圆:,画圆弧:,2019/5/24,32,画扇形:,画直线:,2019/5/24,33,画矩形:,清除图片框:,2019/5/24,34,全部程序是:,,2019/5/24,35,运行结果是;,2019/5/24,36,PaintPicture,PaintPicture的作用: 该方法是将由picture指定的图形绘制到由对象名(图片框、窗体或打印机)指定的地方,而且可以实现图像的平铺、展开、缩放等编辑操作 调用格式: 对象名.PaintPicture picture,destX,destY [,destWidth[,destHeight[,srcX[,srcY[, srcWidth[,srcHeight[,Opcode]]]]]]],2019/5/24,37,PaintPicture方法参数意义,2019/5/24,38,PaintPicture方法应用示例,[例5-2-2]: 假设在两个窗体上都有一个图片框,都放置了一个图形,现要求: 第一个窗体还有两个图片框,分别用于显示图形变形和裁剪用; 第二个窗体用于显示图形翻转用。
2019/5/24,39,第1步:用户界面设计,第一个窗体界面: 三个图片框;三个按钮 第一个图片框的图形由图片框的“Picture”属性加载实现,该图的路径是: “c:\program files\microsoft visual studio\common\graphics\icons\arrows\point05.ico”,2019/5/24,40,第一个窗体界面是:,,2019/5/24,41,第二个窗体的界面是:,该窗体图片框中图形是在程序运行中由程序系统加载实现图片框,2019/5/24,42,第2步:编写程序代码,第一个窗体需对三个按钮编码: “变形”钮:将图形变形后放到第二个图片框中去; “裁剪”钮:将图形变形后放到第三个图片框中去; “翻转”钮:卸载窗体1,显示窗体22019/5/24,43,“变形”按钮程序:,,2019/5/24,44,“裁剪”按钮程序:,,2019/5/24,45,“翻转”按钮程序:,,2019/5/24,46,第二个窗体的代码,由两部分组成: 图形加载程序 图形翻转程序,2019/5/24,47,图形加载程序,2019/5/24,48,图形翻转程序,2019/5/24,49,窗体1全部程序:,,2019/5/24,50,窗体2全部程序:,,2019/5/24,51,运行结果,2019/5/24,52,,,单击按钮1,单击按钮2,单击按钮3,2019/5/24,53,Print方法,图片框内不仅可以绘制图形,还可以调用Print方法显示文本。
调用格式是: 图片框名.Print 表达式 P101页[例5-2]就是图片框调用print方法的一个例子2. 图像框控件(Image),基本作用:显示图形文件 主要属性: Name:缺省值是ImageX(X=1,2,…) Picture:设置控件中显示的图片 Stretch:图片是否改变大小适应控件的大小 BorderStyle:指定边框,,,,,2019/5/24,57,图形加载方法,与图片框PitureBox相同,也有两种方法: 通过picture属性设置(静态) 通过程序加载方法实现(动态),2019/5/24,58,程序加载方法,对象名.Picture=LoadPicture(“文件路径和文件名”) 注意: 文件名的类型可以是:.bmp、.ico、.wmf、.gip、.jpg等; 如果要用程序清空对象框中的图形,可将文件名置空,即: 对象名.Picture=LoadPicture(),2019/5/24,59,Image控件应用示例,【例5-3】:在窗体中有一个图片框和两个图象框图片框中放有一幅图形,图象框中放有两幅图形,其中一幅与图片框相同 现要求编一个程序实现图形的加载和在图片框中交替显示两幅图片,并且使图形从图片框的左上角切入。
2019/5/24,60,第1步:用户界面设计,,2019/5/24,61,第2步:代码设计,分两部分进行: 图形加载; 图形交换,2019/5/24,62,图形加载程序:,,,2019/5/24,63,图形交换程序:,2019/5/24,64,程序中的一点说明,LoadPicture函数中的“App.path”: 表示当前路径,这就是说图片框中需要加载的图形必须在与本程序是在同一个目录(文件夹)下; 否则,就要采用绝对路径方式来表示这个文件,即:“盘符:\路径\文件名”2019/5/24,65,程序运行结果,图像控件和图片框控件的区别,图片框控件的功能比图像控件强,不仅可以显示动态图片,还可以用作容器控件,输出文本和绘制图形图像控件只能显示静态图片 图像控件的图形可以依据图像控件进行伸缩显示而图片框控件只能改变自身的大小来适应图形3. 形状控件(Shape),基本作用: 用来在窗体表面绘制几何图形,不支持任何事件,只用于界面装饰2019/5/24,68,主要属性:,名称属性: 缺省名是Shape X(X=1,2,3,…) Shape属性: 用来设置显示的图形,取值0~5,分别表示直角矩形、正方形、椭圆形、圆形、圆角矩形、圆角正方形。
FillColor属性: 设置填充图形对象的颜色2019/5/24,69。
