重点难点和错误分析 ——项目五 简易画图板

上传人:豆浆 文档编号:6859079 上传时间:2017-08-09 格式:PPT 页数:28 大小:548KB
返回 下载 相关 举报
重点难点和错误分析 ——项目五 简易画图板_第1页
第1页 / 共28页
重点难点和错误分析 ——项目五 简易画图板_第2页
第2页 / 共28页
重点难点和错误分析 ——项目五 简易画图板_第3页
第3页 / 共28页
重点难点和错误分析 ——项目五 简易画图板_第4页
第4页 / 共28页
重点难点和错误分析 ——项目五 简易画图板_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《重点难点和错误分析 ——项目五 简易画图板》由会员分享,可在线阅读,更多相关《重点难点和错误分析 ——项目五 简易画图板(28页珍藏版)》请在金锄头文库上搜索。

1、重点难点和错误分析 项目五 简易画图板,主 讲 :浙江广播电视大学 郑 炜,一、保存图片文件及打开,将图形保存到文件的语句:SavePicture 语法格式:SavePicture picture, stringexpression Picture:产生图形文件的 PictureBox 控件或 Image 控件的图片内容Stringexpression:欲保存的图形文件名,一、保存图片文件及打开,例子:,Private Sub save_Click()dlgFile.Filter = BMP ILES(*.BMP)|*.BMP|_ JPG FILES(*.JPG)| *.JPGdlgFile.

2、ShowSaveFn = dlgFile.FileNameIf Fn Then SavePicture picPaintzone.Image, FnEnd IfEnd Sub,一、保存图片文件及打开,打开已存在的图形文件,在图形控件内显示图形内容。格式:图片框控件名.Picture=LoadPicture(filename)当filename为一个文件的路径文件名时,图片框控件加载了一个图形文件。当filename为空时,清空(删除)图片框内的图形内容。,一、保存图片文件及打开,将图形按一定比例绘制在图片框控件内格式:图片框控件名.PaintPicture picture, x, y, wid

3、th, height Picture:要绘制到 object 上的图形源 x, y:均为单精度值,指定在 object 上绘制 picture 的目标坐标 width, height:单精度值,指示 picture 的目标宽度 和高度,一、保存图片文件及打开,例子:,dlgFile.Filter = BMP FILES(*.BMP)|*.BMP|JPG FILES(*.JPG)dlgFile.ShowOpenIf dlgFile.FileName Then picPaintzone.Picture = LoadPicture(dlgFile.FileName) Fn = dlgFile.Fil

4、eName picPaintzone.PaintPicture picPaintzone.Picture, 0, 0, _ picPaintzone.ScaleWidth, picPaintzone.ScaleHeightEnd If,picPaintzone是“绘图区”,图片框控件,二、绘图方法,在应用程序中加进适当的图形和动画常常可以增加程序的魅力,使其多姿多彩。利用VB提供的绘图方法可以很容易地完成各种图形编程工作,Visual Basic的绘图方法如下:Print 显示字符串Line 画直线和方框Circle 画圆或椭圆Point 取得点的颜色值Pset 设置点的颜色值,1、Line方

5、法,在对象上画直线或矩形语法格式:object.Line Step (x1, y1) Step (x2, y2), color, BF Object:所绘直线的控件对象,例如Form、PictureBox等 (x1, y1):所画线段的起点坐标 (x2, y2):所画线段的终点坐标Color:可选的颜色参数BF:B参数可选参数,利用对角坐标画出矩形;如果使用了 B 参数,则 F 参数规定矩形以矩形边框的颜色填充。,例 利用Line方法绘制直线或矩形,运用Line方法绘制窗体坐标系,Private Sub Form_Click() Cls Form1.Scale (-110, 110)-(110

6、, -110) 定义坐标系 Line (-105, 0)-(105, 0) 画X轴 Line (0, 105)-(0, -105) 画Y轴End Sub,例 利用Line方法绘制直线或矩形,运用Line方法在窗体坐标系内绘制矩形,Private Sub Form_Click() Cls Form1.Scale (-110, 110)-(110, -110) 定义坐标系 Line (-105, 0)-(105, 0) 画X轴 Line (0, 105)-(0, -105) 画Y轴 Line (-40, 40)-(40, -40), , B 画矩形 Line (-70, 40)-(-50, -40

7、), vbRed, BF 画实心矩形End Sub,2、Circle方法,Circle方法用来绘制圆、椭圆、圆弧等图形语法格式对象名. Circle Step(x,y),Radius, Color ,Start,End,Aspet 对象名:要绘制图形的容器对象名称,如窗体、图片框等,缺省时为当前窗体。(x,y):圆、椭圆、弧或扇形的圆心坐标。Radius:圆、椭圆、弧或扇形的半径,若为椭圆,则为最长轴的尺寸。,2、Circle方法,Circle方法用来绘制圆、椭圆、圆弧等图形语法格式对象名. Circle Step(x,y),Radius, Color ,Start,End,Aspet Sta

8、rt:可选型,指定弧的起点位置。取值范围从-2到2,缺省值是0。若为负数,则在画弧的同时还要画出到弧的起点的连线。End:可选项,指定弧的终点位置。取值范围从-2到2,缺省值是2。若为负数,则在画弧的同时还要画出圆心到弧的终点的连线。弧的画法是从起点逆时针画到终点。,2、Circle方法,语法格式对象名. Circle Step(x,y),Radius, Color ,Start,End,AspetAspet:可选项,圆的纵轴和横轴的尺寸比。缺省值为1,表示画一个标准圆。当纵横比大于1时,椭圆的纵轴比横轴长;反之,则比横轴短。,例 在窗体上绘制圆、圆弧等,绘制圆,Private Sub For

9、m_Click() Cls 清屏 Const pi = 3.1415926 ScaleWidth = 100 ScaleHeight = 100 Circle (30, 30), 10 画标准圆End Sub,例 在窗体上绘制圆、圆弧等,绘制椭圆,Private Sub Form_Click() Cls 清屏 Const pi = 3.1415926 ScaleWidth = 100 ScaleHeight = 100 Circle (70, 30), 10, vbGreen, , , 0.5 画绿色椭圆 Circle (70, 30), 10, vbRed, , , 2 画红色椭圆End S

10、ub,例 在窗体上绘制圆、圆弧等,绘制圆弧和扇形,Private Sub Form_Click() Cls 清屏 Const pi = 3.1415926 ScaleWidth = 100 ScaleHeight = 100 Circle (30, 75), 10, , -0.75 * pi, -0.25 * pi 画扇区 Circle (75, 75), 10, , -0.25 * pi, -0.75 * pi 画扇区 Circle (75, 75), 10, , 1.25 * pi, 1.75 * pi 画弧End Sub,三、鼠标事件,MouseDown和MouseUp事件 语法格式:P

11、rivate Sub 控件对象名_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single)Private Sub 控件对象名_MouseUp(Button As Integer, Shift As Integer, x As Single, Y As Single),MouseDown和MouseUp事件,语法格式:Private Sub 控件对象名_MouseDown(Button As Integer, Shift As Integer, x As Single, Y As Single)Button参

12、数:可以用来区分当前鼠标的左、中、右按键,1表示用户按下了鼠标左按键,2表示右按键,4表示中间键。Shift参数:可以用来区别鼠标与键盘的组合,它的值等于1,表示Shift键被按下,2表示Ctrl键,4表示Alt键。X,Y参数:返回鼠标指针当前的位置,它们的计算单位由窗体的ScaleMode决定,由自定义坐标系统决定,如果没有自定义坐标系统,则按照默认坐标系。,示例1,当鼠标左键单击窗体时,按钮跟随鼠标位置移动;当鼠标右键单击窗体时,窗体内出现弹出菜单。,示例1,Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X

13、As Single, Y As Single) If Button = 1 Then 单击鼠标左键时 Command1.Move X, Y ElseIf Button = 2 Then 单击鼠标右键时 PopupMenu edit, X, Y End IfEnd Sub,MouseMove事件,语法格式:Private Sub 控件对象名_MouseMove(Button As Integer, Shift As Integer, x As Single, Y As Single)参数与MouseDown、MouseUp一致,示例,设计程序,当鼠标在窗体内移动时,在鼠标指针当前位置画一个直径为

14、100的圆,如图所示。,Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Circle (X, Y), 100End Sub,在项目中巧妙运用鼠标事件,运用MouseDown事件启动绘图,并绘制起点位置的图形,当鼠标按下后,将绘图区的绘图笔类型设置为异或笔(DrawMode = 7 )运用MouseMove事件处理连续滑动鼠标绘制图形,当鼠标移动到新的位置,则先擦除在这一位置之前的坐标位置所成形的图形,然后再绘制新图形。,四、常见错误分析,Form_Load事件内怎么无法绘制图形?如何清除已绘制的图形,例如线条?如何判定对象是否越出窗体的边界?,1、 Form_Load事件内怎么无法绘制图形?,解决方法:用绘图方法在窗体上绘制图形时,如果将绘制过程放在Form_Load事件内,由于窗体装入内存有一个时间过程,在该时间段内同步地执行了绘图命令,所绘制的图形无法在窗体上显示。有两种方法可解决此问题:方法一:将绘图程序代码放在其他事件内。例如Paint等事件。方法二:将窗体的AutoRedraw属性设置为True。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号