Transcript PPT课件
第六章:图形控件和图形方法 图形控件 图片框控件(PictureBox) Picture属性:设置或返回图片框中的图片 设计时设置: 运行时动态载入:(演示) 图片框控件名.Picture=LoadPicture(图片文件名) 取消图片框中的图片的方法 图片框控件名.Picture=LoadPicture() AutoSize属性:是否设置图片框大小以适应图片大小 True:自动修改图片框大小以显示全部图片(可能会破坏控件布局) False:不修改图片框大小(可能只显示图片一部分或留出空白) Page 2 图形控件 图片框控件(PictureBox) Print方法 与Print语句相似,但是输出内容显示在图片框中(演示) 图形方法:circle、line、pset、point(后面介绍) Cls方法 擦除图片框中的文字、图形,并将输出位置复原到左上角 不能擦除通过Picture属性设置的图片 相关的两个属性CurrentX、CurrentY:设置或返回当前输入位置 实例 实例1:6-1(图片复制) 实例2:6-2(图片框的方法演示) Page 3 图形控件 图片框控件(PictureBox) 图片框的事件 Click、MouseDown、MouseUp、MouseMove等常见事件 灵活利用这些事件结合loadpicture函数可以做出漂亮的动态按钮 (6-3) 图片框的第二个功能:作为控件的容器(同框架类似) 演示利用图片框实现单选按钮分组 Page 4 图形控件 影像框控件(Image) Image控件可以视为简易图片框 属性 Picture属性:与图片框的Picture属性相同 Stretch属性(演示) False:自动调整控件大小以显示全部图片 True:自动调整图片大小以适应控件大小(可能导致图片失真) 注意和图片框的AutoSize属性的区别 事件 与图片框基本相同 Page 5 图形控件 应用建议 如果需要作为其他空间的容器,或用来输出文字、绘制图 形,必须采用PictureBox(图片框) 如果仅仅用来显示图片(如设计图片浏览器、漂亮的图形 按钮等),建议采用Image(影像框),因为它的速度更 快、耗费资源更少。 Page 6 图形控件 形状控件(Shape) 属性 Shape属性:决定图形的形状(P169) BorderStyle属性:图形边框样式(P169) FillStyle属性:图形填充样式(P169) BorderColor属性:边框颜色, BorderStyle<>0时有效 FillColor属性:填充颜色,FillStyle<>1时有效 BorderWidth:边框宽度 直线控件(Line) Page 7 Visual Basic坐标系 控件的容器 能将其他对象置于其中的对象 Screen Form PictureBox Frame 容器的坐标 每个容器都有一个独立的坐标系 系统的默认坐标系 原点为左上角 水平往右为x正方向 竖直往下为y正方向 坐标系的刻度单位为Twip Page 8 Visual Basic坐标系 Picture1.Top Text1.Top Picture1.Left Text1.left Page 9 Visual Basic坐标系 改变容器坐标系的Scale方法 利用Scale方法可以改变默认坐标系(包括原点,x轴y轴 方向,刻度单位) 格式 容器名.Scale(x1,y1)-(x2,y2) 说明 (x1,y1)为容器左上角在新坐标系中的坐标 (x2,y2)为容器右下角在新坐标系中的坐标 一般方法 在草稿中画出新坐标 计算出新坐标系统中左上角和右下角的坐标值 写出Scale方法 Page 10 Visual Basic坐标系 改变容器坐标系的Scale方法 练习 在窗体中的一个图片框(PictureBox1)中建立一个坐标系,要求坐标原 点在图片框中心,x轴正方向为水平向左,y轴正方向为竖直向上,宽度为 100刻度单位,高度为200刻度单位 200 (0,0) 100 Page 11 Visual Basic坐标系 改变容器坐标系的Scale方法 与坐标系统相关的几个属性 ScaleLeft ScaleTop ScaleWidth ScaleHeight 与Left、Top、Width、Height的区别 Left、Top、Width、Height的值是以控件所在的容器的坐标系统 为依据 ScaleLeft、ScaleTop、ScaleWidth、ScaleHeight的值是控件自 身的坐标系统为依据 实例(6-4) Page 12 Visual Basic坐标系 改变容器坐标系的Scale方法 容器的中心总可以用以下表达式 容器名.scaleleft+容器名.scalewidth/2 容器名.scaletop+容器名.scaleheight/2 系统可供选择的坐标刻度:scalemode属性 Page 13 图形方法与应用 画点方法Pset 格式 [容器名.]Pset [step](x,y)[,color] 功能 在容器的指定坐标位置以指定颜色绘制一个点 说明 未指明容器名,默认指当前窗体;未指明颜色,默认为容器的ForeColor; 点的大小由容器控件的DrawWidth属性决定。 没有Step关键字,则(x,y)是指绝对坐标值,绘图坐标点为(x,y) 有Step关键字,则(x,y)是指相对坐标值,绘图坐标点为 (CurrentX+x,CurrentY+y) 绘制完成后,绘图的坐标点成为新的(CurrentX,CurrentY) 演示 在图片框上用鼠标画点 用Pset绘制函数图形(6-5) Page 14 图形方法与应用 返回某个点的颜色值 格式 容器名.Point (x,y) 演示 复制图片(6-6) 画线、画矩形方法Line 画线 容器名.line [(x1,y1)]-[step](x2,y2)[,color] 说明 省略(x1,y1),则以(CurrentX,CurrentY)为起点 没有关键字step,则以(x2,y2)为终点,有关键字Step,则以 (x1+x2,y1+y2)为终点。 绘制完成后,终点的坐标点成为新的(CurrentX,CurrentY) 线条粗细取决于DrawWidth属性,如果没有指定Color,颜色为 ForeColor属性 Page 15 图形方法与应用 画线、画矩形方法Line 画矩形1 容器名.line [(x1,y1)]-[step](x2,y2)[,color][,B] 说明 在起点坐标和终点坐标为对角点绘制矩形 以FillStyle、Fillcolor属性指定填充样式和颜色 矩形边框颜色有Color指定,如果没有指定,为ForeColor属性值 边框粗细有DrawWidth属性决定 画矩形2 容器名.line [(x1,y1)]-[step](x2,y2)[,color][,BF] 说明 以画边框的颜色实心填充矩形内部,而与FillStyle、FillColor属性无 关 Page 16 图形方法与应用 画圆、画圆弧、画椭圆方法Circle 画圆 格式:[容器名.]circle [step](x,y),radius,[.color] 说明 有Step,圆心位置为(currentX+x,CurrentY+y),否则为(x,y) 画圆弧 格式:[容器名.]circle [step](x,y),radius,[.color],start,end 说明 Start、End为圆弧起点和终点(单位是弧度),绘制方向为逆时钟方 向,平行于x轴正方向为0弧度 Start、End如果取负数值,表示在圆心和圆弧端点画一条线 Page 17 图形方法与应用 画圆、画圆弧、画椭圆方法Circle 画椭圆(弧) 格式: [容器名.]circle [step](x,y),radius,[.color],start,end[.aspect] 说明 Aspect表示椭圆纵轴和横轴之比,取值>0 Aspect<1,radius表示横轴长度 Aspect>1,radius表示纵轴长度 Page 18 感谢观赏 Page 19