⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 51.txt

📁 介绍VB里的各种控件的使用方法,窗口控制,图像编程以及OCX等内容,还提供了一个API集供参考.
💻 TXT
字号:
一个用VB5.0 实现的鼠标绘图程序
作者:殷联甫 
摘要:本文给出了一个用VB5.0实现的鼠标绘图程序,对程序的主要功能及实现细节作 了详细说明,并给出了部分源程序. 
关键词:VB5.0,可视化程序设计

1. 引言
MicroSoft公司推出的新一代可视化程序设计语言VB5.0以其功能强大和简单易学而深受广大程序设计人员的喜爱,人们用它开发出了许多绚丽多彩的应用程序,可以这样说,VB5.0将成为最流行的可视化程序设计语言.
笔者在学习和使用VB5.0的过程中编制了一个实用的鼠标绘图程序,现提供给大家,以供大家参考.

2. 程序主要功能
本绘图程序的模块结构图如下所示:
鼠标绘图程序:
文件
新建
装入
保存
退出
绘图
颜色
前景色
背景色
线宽
1象素宽
2象素宽
3象素宽
4象素宽
清除

3. 实现细节
本程序主要是实现用鼠标在窗体上绘图,在绘图过程中可选择颜色及线宽,同时可将所绘图形以位图(.bmp)文件的形式存储在盘上,也可将盘上的其它图形文件调入窗体.
3.1 用鼠标在窗体上绘图
利用窗体对象的MouseDown和MouseMove事件可实现鼠标在窗体上绘图:

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
CurrentX = X
CurrentY = Y
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button Then
Line -(X, Y), forcolor
End If
End Sub

其中forcolor为绘图的前景色,在本程序中前景色由用户选取.

3.2 颜色选取
利用通用对话框控件Commondialog的ShowColor方法可实现前景色和背景色的选取:

Private Sub mnubkcolor_Click()
CommonDialog1.CancelError = True
On Error GoTo errhandler
CommonDialog1.Flags = &H1&
CommonDialog1.ShowColor
BackColor = CommonDialog1.Color
Exit Sub
errhandler:
Exit Sub
End Sub

3.3 线宽的设置
通过设置窗体对象的属性DrawWidth的值可实现绘图时线宽的设置,DrawWidth=1时,线宽为1个象素,以此类推.

3.4 图形的保存
结合使用通用对话框控件Commondialog的ShowSave方法和SavePicture语句可实现图形的保存:

Private Sub mnusave_Click()
On Error GoTo errhandler
CommonDialog1.Filter = "bmp files(*.bmp)"
CommonDialog1.ShowSave
SavePicture Image, CommonDialog1.FileName
Exit Sub
errhandler:
Exit Sub
End Sub

3.5 图形的调入
结合使用通用对话框控件Commondialog的ShowOpen方法和LoadPicture函数可实现图形的调入:

Private Sub mnuload_Click()
On Error GoTo errhandler
CommonDialog1.Filter = "bmp files(*.bmp)"
CommonDialog1.ShowOpen
Picture = LoadPicture(CommonDialog1.FileName)
Exit Sub
errhandler:
Exit Sub
End Sub
4. 源程序清单

VERSION 5.00
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"
Begin VB.Form frmdraw 
AutoRedraw = -1 注释:True
Caption = "绘图工具软件(嘉兴高专机电系计算中心)"
ClientHeight = 4230
ClientLeft = 1140
ClientTop = 1815
ClientWidth = 6720
BeginProperty Font 
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
Begin MSComDlg.CommonDialog CommonDialog1 
Left = 4920
Top = 2880
_ExtentX = 847
_ExtentY = 847
_Version = 393216
End
Begin VB.Menu mnufile 
Caption = "文件"
Begin VB.Menu mnunew 
Caption = "新建"
End
Begin VB.Menu mnustepa 
Caption = "-"
End
Begin VB.Menu mnuload 
Caption = "装入"
End
Begin VB.Menu mnustepb 
Caption = "-"
End
Begin VB.Menu mnusave 
Caption = "保存"
End
Begin VB.Menu mnustepc 
Caption = "-"
End
Begin VB.Menu mnuexit 
Caption = "退出"
End
End
Begin VB.Menu mnudraw 
Caption = "绘图"
Begin VB.Menu mnucolor 
Caption = "颜色"
Begin VB.Menu mnuforcolor 
Caption = "前景色"
End
Begin VB.Menu mnustep1a 
Caption = "-"
End
Begin VB.Menu mnubkcolor 
Caption = "背景色"
End
End
Begin VB.Menu mnustepg 
Caption = "-"
End
Begin VB.Menu mnudrawwidth 
Caption = "线宽"
Begin VB.Menu mnupixel1 
Caption = "1象素宽"
End
Begin VB.Menu mnustep31 
Caption = "-"
End
Begin VB.Menu mnupixel2 
Caption = "2象素宽"
End
Begin VB.Menu mnustep32 
Caption = "-"
End
Begin VB.Menu mnupixel3 
Caption = "3象素宽"
End
Begin VB.Menu mnustep33 
Caption = "-"
End
Begin VB.Menu mnupixel4 
Caption = "4象素宽"
End
End
Begin VB.Menu mnustepf 
Caption = "-"
End
Begin VB.Menu mnuclearz 
Caption = "擦除"
Begin VB.Menu mnuclear1 
Caption = "全部擦除"
End
Begin VB.Menu mnustepo 
Caption = "-"
End
Begin VB.Menu mnuclear2 
Caption = "部分擦除"
End
End
End
End
Attribute VB_Name = "frmdraw"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim forcolor As Long

Private Sub mnubkcolor_Click()
CommonDialog1.CancelError = True
On Error GoTo errhandler
CommonDialog1.Flags = &H1&
CommonDialog1.ShowColor
BackColor = CommonDialog1.Color
Exit Sub
errhandler:
Exit Sub
End Sub

Private Sub mnuclear1_Click()
Picture = LoadPicture("")
End Sub

Private Sub mnuforcolor_Click()
CommonDialog1.CancelError = True
On Error GoTo errhandler
CommonDialog1.Flags = &H1&
CommonDialog1.ShowColor
forcolor = CommonDialog1.Color
Exit Sub
errhandler:
Exit Sub
End Sub

Private Sub mnuexit_Click()
End
End Sub
Private Sub mnuload_Click()
On Error GoTo errhandler
CommonDialog1.Filter = "All Files(*.*)"
CommonDialog1.ShowOpen
Picture = LoadPicture(CommonDialog1.FileName)
Exit Sub
errhandler:
Exit Sub
End Sub
Private Sub mnunew_Click()
Picture = LoadPicture("")
End Sub
Private Sub mnupixel1_Click()
DrawWidth = 1
End Sub
Private Sub mnupixel2_Click()
DrawWidth = 2
End Sub
Private Sub mnupixel3_Click()
DrawWidth = 3
End Sub
Private Sub mnupixel4_Click()
DrawWidth = 4
End Sub
Private Sub mnusave_Click()
On Error GoTo errhandler
CommonDialog1.Filter = "All Files(*.*)"
CommonDialog1.ShowSave
SavePicture Image, CommonDialog1.FileName
Exit Sub
errhandler:
Exit Sub
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
CurrentX = X
CurrentY = Y
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button Then
Line -(X, Y), forcolor
End If
End Sub

5.结束语
本程序已在VB5.0环境下调试通过,有兴趣的读者可对该程序进行扩充,以完成更强的绘图功能  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -