程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 一個用VB5.0實現的鼠標繪圖程序

一個用VB5.0實現的鼠標繪圖程序

編輯:VB綜合教程
摘要:本文給出了一個用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環境下調試通過,有興趣的讀者可對該程序進行擴充,以完成更強的繪圖功能->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved