画板系统的设计与实现_第1页
画板系统的设计与实现_第2页
画板系统的设计与实现_第3页
画板系统的设计与实现_第4页
画板系统的设计与实现_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

1、画板系统的设计与实现本工程以一个比较有趣的例子,来说明如何使用Visual Basic来开发Windows应用程序。本工程将使用VB来开发一个类似“画图”软件的程序,通过此程序,我们可以实现用鼠标画直线、矩形以及不规则线等,可以控制笔线粗细等功能。本系统可以完成以下任务:l 通过自制调色板选取画笔的前景色和背景色。l 用户可以设置控制画笔的粗细,颜色。l 可以画点、线(直线和不规则线)、矩形等。l 指示鼠标坐标,前景背景,按钮工具的信息等。首先,现在窗体上添加各种控件,如图1-1、图1-1画图板的设计窗口控件名称主要控件属性名称属性值功能说明Form1Caption画图板VBBorderSty

2、le3 Fixed DialogStartUpPosition2-屏幕中心Label3名称Label3容纳工具按钮caption工具按钮font宋体,5号,粗体,下划线BorderStyle1-FixedCommand1Style1-Graphical控件数组,为工具按钮ToolTipText分别为:新建、铅笔、画直线、画矩形、画点、橡皮PictureBox名称DrawPic画布,主要的绘画区。BorderStyle1 Fixed SinglePictureBox名称LineCon用来指示绘图的线宽,由其下面的滚动条控制。BackColor &H8000000F&BorderStyle1 Fi

3、xed SingleHScrollBar名称HScroll1控制绘图的线宽。LargeChange1Max20Min1Label名称Info用来显示提示信息等Caption工具指示器BorderStyle1 Fixed Single名称Label4Caption鼠标坐标Line1这是一个线的控件数组,一黑一白,位置相对成立体效果Label2BorderStyle1 Fixed Single存放前景背景颜色Label名称ForeSee存放前景颜色BorderStyle1 Fixed SingleLabel名称BackSee存放背景颜色BorderStyle1 Fixed SingleLabel名

4、称Label1控件数组,用于存放颜料盒,选择不同的背景颜色。BorderStyle1 Fixed SingleBackColor(选择不同的颜色即可)CommandButton名称Command2Caption画板清空名称Command3Caption退出图1-2画图板的运行窗口本系统采用的主要原理:l 系统初始化:完成系统的各项初始化。Dim nToolNum, nMyForeColor, nMyBackColor被访问的工具按钮、前景、背景Dim nStartX, nStartY, nEndX, nEndY As Integer指定开始和结束坐标Dim nLineWidth As Inte

5、ger指定线宽Dim DrawOrNot As Boolean 是否开始画图Private Sub Form_Load()初始化各项参数 nToolNum = 0 nLineWidth = 1 DrawOrNot = False nMyForeColor = RGB(0, 0, 0) nMyBackColor = RGB(255, 255, 255) DrawPic.ForeColor = nMyForeColor DrawPic.BackColor = nMyBackColorEnd Subl 在颜料盒中选定前景和背景:Private Sub Label1_MouseUp(Index As

6、Integer, Button As Integer, Shift As Integer, X As Single, Y As Single) If (Button = 1) Then如果是左键,则进行前景颜色设置 ForeSee.BackColor = Label1(Index).BackColor使用控件数组获取颜色 DemoLine.BorderColor = ForeSee.BackColor显示线的颜色 nMyForeColor = ForeSee.BackColor DrawPic.ForeColor = ForeSee.BackColor End If If (Button =

7、2) Then如果是右键,则进行背景颜色设置 BackSee.BackColor = Label1(Index).BackColor LineCon.BackColor = BackSee.BackColor nMyBackColor = BackSee.BackColor End If nMyForeColor = ForeSee.BackColor nMyBackColor = BackSee.BackColorEnd Subl 用滚动条控制画笔的线宽:Private Sub HScroll1_Change() LineCon.BackColor = BackSee.BackColor D

8、emoLine.BorderWidth = HScroll1.Value DrawPic.DrawWidth = HScroll1.ValueEnd Subl 用鼠标进行画图的过程控制:Private Sub DrawPic_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)依据按下的工具值,来进行坐标和作图方式的选择即DrawMode赋值,分为正常和异或(分别取值13和7)Select Case nToolNum Case 1 DrawPic.CurrentX = X: DrawPic.Curren

9、tY = Y DrawPic.DrawMode = 13 Case 2 nStartX = X: nStartY = Y nEndX = X: nEndY = Y DrawPic.DrawMode = 7 Case 3 nStartX = X: nStartY = Y nEndX = X: nEndY = Y DrawPic.DrawMode = 7 nStartX = X: nStartY = Y Case 4 If Button = 1 Then DrawPic.ForeColor = nMyForeColor Else DrawPic.ForeColor = nMyBackColor E

10、nd If nStartX = X: nStartY = Y DrawPic.DrawMode = 7 DrawPic.PSet (nStartX, nStartY), DrawPic.ForeColor Case 5 DrawPic.CurrentX = X: DrawPic.CurrentY = Y DrawPic.DrawMode = 13 nStartX = X: nStartY = Y End SelectEnd SubPrivate Sub DrawPic_MouseMove(Button As Integer, Shift As Integer, X As Single, Y A

11、s Single) 依据鼠标的移动来进行作图,并根据鼠标的左右键判断用前景还是背景作图 If Button 0 Then If Button = 2 Then DrawPic.ForeColor = nMyBackColor Else DrawPic.ForeColor = nMyForeColor End If Select Case nToolNum Case 1 DrawPic.Line -(X, Y), DrawPic.ForeColor Case 2 DrawPic.Line (nStartX, nStartY)-(nEndX, nEndY), Not (DrawPic.ForeCo

12、lor) DrawPic.Line (nEndX, nEndY)-(X, Y), Not (DrawPic.ForeColor) nStartX = X: nStartY = Y Case 3 DrawPic.Line (nStartX, nStartY)-(nEndX, nEndY), Not (DrawPic.ForeColor), B DrawPic.Line (nEndX, nEndY)-(X, Y), Not (DrawPic.ForeColor), B nStartX = X: nStartY = Y Case 4 DrawPic.PSet (X, Y), nMyForeColor

13、 Case 5 DrawPic.Line -(X, Y), nMyBackColor End Select End If Label4.Caption = X: & X & Y: & Y显示鼠标的坐标位置End SubPrivate Sub Drawpic_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) 依据按下的工具值,来用正常的绘图方式将画好的图重新绘制一遍,使在鼠标移动过程中的异或方式画的图被覆盖。使之能正常显示。 Select Case nToolNum Case 2 DrawPic.Line

14、 (nEndX, nEndY)-(nStartX, nStartY) DrawPic.DrawMode = 13 DrawPic.Line (nEndX, nEndY)-(nStartX, nStartY), DrawPic.ForeColor Case 3 DrawPic.Line (nStartX, nStartY)-(nEndX, nEndY), Not (DrawPic.ForeColor), B DrawPic.DrawMode = 13 DrawPic.Line (nStartX, nStartY)-(nEndX, nEndY), DrawPic.ForeColor, B End SelectEnd Subl 点击工具按钮现实的提示信息:Private Sub Command1_Click(Index As Integer) Select Case Index Case 0: Info.Caption = 你用的是清除画板 DrawPic.Cls Case 1: nToolNum = 1 Info.Caption = 你用的是铅笔 Case 2: nToolNum = 2 Info.Caption = 你用的是画直线 Case 3: nToolNum

温馨提示

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

评论

0/150

提交评论