一个用VB5.0实现的鼠标绘图程序

2016-02-19 20:14 55 1 收藏

下面图老师小编跟大家分享一个简单易学的一个用VB5.0实现的鼠标绘图程序教程,get新技能是需要行动的,喜欢的朋友赶紧收藏起来学习下吧!

【 tulaoshi.com - 编程语言 】

摘要:本文给出了一个用VB5.0实现的鼠标绘图程序,对程序的主要功能及实现细节作了详细说明,并给出了部分源程序.
  关键词:VB5.0,可视化程序设计
  
  1.引言
  MicroSoft公司推出的新一代可视化程序设计语言VB5.0以其功能强大和简单易学而深受广大程序设计人员的喜爱,人们用它开发出了许多绚丽多彩的应用程序,可以这样说,VB5.0将成为最流行的可视化程序设计语言.
  笔者在学习和使用VB5.0的过程中编制了一个实用的鼠标绘图程序,现提供给大家,以供大家参考.
  
  2.程序主要功能
  本绘图程序的模块结构图如下所示:
  鼠标绘图程序:
  文件
  新建
  装入
  保存
  退出
  绘图
  颜色
  前景色
  背景色
  线宽
  1象素宽
  2象素宽
  3象素宽
  4象素宽
  清除
  
  3.实现细节
  本程序主要是实现用鼠标在窗体上绘图,在绘图过程中可选择颜色及线宽,同时可将所绘图形以位图(.bmp)文件的形式存储在盘上,也可将盘上的其它图形文件调入窗体.
  3.1用鼠标在窗体上绘图
  利用窗体对象的MouseDown和MouseMove事件可实现鼠标在窗体上绘图:
  
  PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
  CurrentX=X
  CurrentY=Y
  EndSub
  PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
  IfButtonThen
  Line-(X,Y),forcolor
  EndIf
  EndSub
  
  其中forcolor为绘图的前景色,在本程序中前景色由用户选取.
  
  3.2颜色选取
  利用通用对话框控件Commondialog的ShowColor方法可实现前景色和背景色的选取:
  
  PrivateSubmnubkcolor_Click()
  CommonDialog1.CancelError=True
  OnErrorGoToerrhandler
  CommonDialog1.Flags=&H1&
  CommonDialog1.ShowColor
  BackColor=CommonDialog1.Color
  ExitSub
  errhandler:
  ExitSub
  EndSub
  
  3.3线宽的设置
  通过设置窗体对象的属性DrawWidth的值可实现绘图时线宽的设置,DrawWidth=1时,线宽为1个象素,以此类推.
  
  3.4图形的保存
  结合使用通用对话框控件Commondialog的ShowSave方法和SavePicture语句可实现图形的保存:
  
  PrivateSubmnusave_Click()
  OnErrorGoToerrhandler
  CommonDialog1.Filter="bmpfiles(*.bmp)"
  CommonDialog1.ShowSave
  SavePictureImage,CommonDialog1.FileName
  ExitSub
  errhandler:
  ExitSub
  EndSub
  
  3.5图形的调入
  结合使用通用对话框控件Commondialog的ShowOpen方法和LoadPicture函数可实现图形的调入:
  
  PrivateSubmnuload_Click()
  OnErrorGoToerrhandler
  CommonDialog1.Filter="bmpfiles(*.bmp)"
  CommonDialog1.ShowOpen
  Picture=LoadPicture(CommonDialog1.FileName)
  ExitSub
  errhandler:
  ExitSub
  EndSub
  4.源程序清单
  
  VERSION5.00
  Object="{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0";"COMDLG32.OCX"
  BeginVB.Formfrmdraw
  AutoRedraw=-1'True
  Caption="绘图工具软件(嘉兴高专机电系计算中心)"
  ClientHeight=4230
  ClientLeft=1140
  ClientTop=1815
  ClientWidth=6720
  BeginPropertyFont
  Name="隶书"
  Size=5.25
  Charset=134
  Weight=400
  Underline=0'False
  Italic=0'False
  Strikethrough=0'False
  EndProperty
  LinkTopic="Form1"
  PaletteMode=1'UseZOrder
  ScaleHeight=4230
  ScaleWidth=6720
  WindowState=2'Maximized
  BeginMSComDlg.CommonDialogCommonDialog1
  Left=4920
  Top=2880
  _ExtentX=847
  _ExtentY=847
  _Version=393216
  End
  BeginVB.Menumnufile
  Caption="文件"
  BeginVB.Menumnunew
  Caption="新建"
  End
  BeginVB.Menumnustepa
  Caption="-"
  End
  BeginVB.Menumnuload
  Caption="装入"
  End
  BeginVB.Menumnustepb
  Caption="-"
  End
  BeginVB.Menumnusave
  Caption="保存"
  End
  BeginVB.Menumnustepc
  Caption="-"
  End
  BeginVB.Menumnuexit
  Caption="退出"
  End
  End
  BeginVB.Menumnudraw
  Caption="绘图"
  BeginVB.Menumnucolor
  Caption="颜色"
  BeginVB.Menumnuforcolor
  Caption="前景色"
  End
  BeginVB.Menumnustep1a
  Caption="-"
  End
  BeginVB.Menumnubkcolor
  Caption="背景色"
  End
  End
  BeginVB.Menumnustepg
  Caption="-"
  End
  BeginVB.Menumnudrawwidth
  Caption="线宽"
  BeginVB.Menumnupixel1
  Caption="1象素宽"
  End
  BeginVB.Menumnustep31
  Caption="-"
  End
  BeginVB.Menumnupixel2
  Caption="2象素宽"
  End
  BeginVB.Menumnustep32
  Caption="-"
  End
  BeginVB.Menumnupixel3
  Caption="3象素宽"
  End
  BeginVB.Menumnustep33
  Caption="-"
  End
  BeginVB.Menumnupixel4
  Caption="4象素宽"
  End
  End
  BeginVB.Menumnustepf
  Caption="-"
  End
  BeginVB.Menumnuclearz
  Caption="擦除"
  BeginVB.Menumnuclear1
  Caption="全部擦除"
  End
  BeginVB.Menumnustepo
  Caption="-"
  End
  BeginVB.Menumnuclear2
  Caption="部分擦除"
  End
  End
  End
  End
  AttributeVB_Name="frmdraw"
  AttributeVB_GlobalNameSpace=False
  AttributeVB_Creatable=False
  AttributeVB_PredeclaredId=True
  AttributeVB_Exposed=False
  DimforcolorAsLong
  
  PrivateSubmnubkcolor_Click()
  CommonDialog1.CancelError=True
  OnErrorGoToerrhandler
  CommonDialog1.Flags=&H1&
  CommonDialog1.ShowColor
  BackColor=CommonDialog1.Color
  ExitSub
  errhandler:
  ExitSub
  EndSub
  
  PrivateSubmnuclear1_Click()
  Picture=LoadPicture("")
  EndSub
  
  PrivateSubmnuforcolor_Click()
  CommonDialog1.CancelError=True
  OnErrorGoToerrhandler
  CommonDialog1.Flags=&H1&
  CommonDialog1.ShowColor
  forcolor=CommonDialog1.Color
  ExitSub
  errhandler:
  ExitSub
  EndSub
  
  PrivateSubmnuexit_Click()
  End
  EndSub
  PrivateSubmnuload_Click()
  OnErrorGoToerrhandler
  CommonDialog1.Filter="AllFiles(*.*)"
  CommonDialog1.ShowOpen
  Picture=LoadPicture(CommonDialog1.FileName)
  ExitSub
  errhandler:
  ExitSub
  EndSub
  PrivateSubmnunew_Click()
  Picture=LoadPicture("")
  EndSub
  PrivateSubmnupixel1_Click()
  DrawWidth=1
  EndSub
  PrivateSubmnupixel2_Click()
  DrawWidth=2
  EndSub
  PrivateSubmnupixel3_Click()
  DrawWidth=3
  EndSub
  PrivateSubmnupixel4_Click()
  DrawWidth=4
  EndSub
  PrivateSubmnusave_Click()
  OnErrorGoToerrhandler
  CommonDialog1.Filter="AllFiles(*.*)"
  CommonDialog1.ShowSave
  SavePictureImage,CommonDialog1.FileName
  ExitSub
  errhandler:
  ExitSub
  EndSub
  PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
  CurrentX=X
  CurrentY=Y
  EndSub
  PrivateSubForm_MouseMove(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
  IfButtonThen
  Line-(X,Y),forcolor
  EndIf
  EndSub
  
  5.结束语
  本程序已在VB5.0环境下调试通过,有兴趣的读者可对该程序进行扩充,以完成更强的绘图功能->

来源:http://www.tulaoshi.com/n/20160219/1623076.html

延伸阅读
在VB5.0具有面向对象的程序设计思想及可视化的编程方式,可开发出各种多媒体应用程序,颇得软件设计者青睐。笔者最近应用VB5.0编制了一程序,成功实现了“图文并茂”的屏幕效果,即:屏幕出现用户选定的一幅赏心悦目的图像,在图像下方有一行字幕缓缓地从屏幕右边向左边移动,全部文字移至左边消失后,从右边又平滑拖出字幕,字幕移动过程中既不...
一般会使用WINDOW API的情况,实在是因为VB本身不提供某些功能,但是,程式所需又不得不然,例如:读取Registry内的资料,VB只提供SaveSetting、Getsetting 等系列的指令,但是它只能读取特定地区的值,要读、删、更动其他区域的值时,就无法使用。再如:仔细看一看Combo Box的Events,其中没有MouseMove,但这是我们经常用上的一个Event,...
->----WINDOWS95的桌面是用户的一个主要工作场所,如果你能使这个桌面移动起来或者发生其它变化,将是一种别具一格屏幕特技效果,而实际上目前具有类似效果的程序并不少见,比如MicrosoftPLUS!中提供的一种屏幕保护程序,下面介绍在VB5.0中实现桌面变化特技的基本原理和具体操作过程。 ----一、桌面变化的实质:这种编程效果的奥妙在于,它不...
长期用VB50进行数据库应用软件的编程,遇到过不少问题,走了不少弯路,也积累了不少经验。在此,将它们做个小结,希望对同样从事VB50编程的朋友有所帮助。 1、在Form_Load事件中不能对Data控件进行控制 如果确实需在窗体被打开时使用Data控件,可在Form_Activate事件中进行控制。由于Activate事件在窗体被激活时发生,就是说在窗体...
----在VB5.0中,用MicrosoftJet数据库引擎和数据访问对象DAO(DataAccessObject)可以创建功能强大的客户/服务器应用程序。对远程数据库的访问是开发这类应用程序的关键环节,本文将介绍在VB5.0中用DAO通过MiscrosoftJet数据库引擎访问远程数据库的方法。 ----用DAO访问远程数据库大体上可以通过三步来实现,即数据连接、数据处理和断...

经验教程

649

收藏

49
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部