用Visual Basic语言实现模拟绘图功能

时间:2022-07-28 02:34:12

用Visual Basic语言实现模拟绘图功能

摘要:本文介绍在Visual Basic语言编程环境中,利用鼠标mousedown、mousemove和mouseup事件,建立一个可供写字或绘图的窗口,将其编译成在桌面上可执行的文件,代替教学用粉笔写字或绘图。

关键词:VB;鼠标;事件;窗口

中图分类号:TP37文献标识码:A文章编号:1009-3044(2007)16-31138-02

Imitate a painting function with the language realization of the Visual Basic

JIANG Chao-bing,lV Miao-miao

Yancheng Health Vocational and Technical College , Jiangsu ,Yancheng 224006

Abstract:This text introduces making use of mouse mousedown、 mousemove and mouseup events in the Visual Basic language program environment, build up a window way that can provide write or paint ,by compiled it to a file which can be carried out on the desktop by double click with mouse, replace teaching to use chalk lettering or painting.

Key words:VB;mouse;event;window

1 引言

随着多媒体教学手段的普及和精品课程的推广,越来越多的教师逐步摆脱了粉笔上课方式,将教学内容通过WEB方式或课件方式讲授。然而在上课过程中,根据课程的不同和教学内容的需要,仍需临时书写文字或绘制图形。本文给出利用VB提供的鼠标事件,给出常用的几种色彩,制作出在桌面可直接执行的文件,供教学中临时写字或绘制简单图形的窗口,满足了教学的需要,供读者参考。

2 窗体事件和功能

在窗口中,直接移动鼠标时,不能画出线,而当鼠标按下后,移动鼠标时,根据鼠标移动的轨迹,画出图形或线段;当松开鼠标时,停止画线。

在窗口左下角提供常用几种颜色,用鼠标单击选中相应的颜色,该颜色为随后画线的颜色;

单击直线按钮,再在窗口中拖动时,从鼠标拖动时起点到松开鼠标时为终点,根据选择颜色绘制一条直线;

单击画圆按钮,再在窗口中拖动时,以鼠标拖动时起点为圆心,以松开鼠标点到起点为半径,根据所选颜色,画一个圆;

在窗口右上角有一文本框,初始时隐藏,窗口下方有一命令按钮,标题为“显示文本框”,单击该命令按钮,显示文件框,可输入临时性文本,同时标题改变为“隐藏文本框”,再单击,则隐藏该文本框;

在窗口中双击鼠标时,清除窗口中所画线段,可重新绘图或书写文字。

3 制作和编写程序代码

启动VB后,建立新的工程,设置窗口的大小,将窗体标题改为“绘图窗口”,在窗体左下角分别添加5个标签,清空标题,背景颜色分别为黑、红、蓝、绿、白5种常用颜色。添加4个命令按钮,标题分别为“直线”、“画圆”、“退出”、“显示文本框”。在窗体右上角添加一个文本框,在属性窗口设置相应的字体、大小、颜色。

在代码窗体加入如下程序代码:

Dim paintnow As Boolean‘模块级布尔类型变量,

Dim line1 As Integer‘模块级变量LINE1,用来传递是否选中画直线;

Dim circle1 As Integer ‘模块级变量circle1,用来传递是否选中画圆;

Dim x1 As Integer ‘X1,Y1 传递鼠标按下点的坐标值;

Dim y1 As Integer

Dim x2 As Integer‘X2,Y2 传递鼠标松开时,鼠标所在点的坐标;

Dim y2 As Integer

‘窗体双击事件,用来清窗口所绘内容,实现重新绘图或写字;

Private Sub Form_DblClick()

Cls

Text1.text=””

End Sub

‘单击命令按钮1,给LINE1赋值1,将此值传递给Mousedown事件,确定是否画直线;

Private Sub Command1_Click()

line1 = 1

End Sub

‘单击命令按钮2,给circle1赋值1,将此值传递给Mousedown事件,确定是否画圆;

Private Sub Command2_Click()

circle1 = 1

End Sub

‘单击命令按钮3,结束程序运行;

Private Sub Command3_Click()

End

End Sub

‘显示和隐藏文本框

Private Sub Command4_Click()

If Command4.Caption = "显示文本框" Then

Text1.Visible = True

Command4.Caption = "隐藏文本框"

Else

Text1.Visible = False

Command4.Caption = "显示文本框"

End If

End Sub

‘窗体加载事件,确定线宽为2,初始颜色为黑色;

Private Sub Form_Load()

DrawWidth = 2

ForeColor = RGB(0, 0, 0)

End Sub

‘鼠标按下去事件,通过模块级变量传递可以画点的信息;

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)

paintnow = True

If line1 = 1 Or circle1 = 1 Then

x1 = X

y1 = Y

MousePointer = 2

End If

End Sub

‘鼠标移动事件,根据模块级变量的值,确定是否在鼠标当前位置画点;

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

If paintnow Then

PSet (X, Y)

End If

End Sub

‘鼠标松开事件,通过模块级变量传递画点结束、画直线结束、画圆时圆周上点位置的信息;

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

paintnow = False

If line1 = 1 Then

x2 = X

y2 = Y

Line (x1, y1)-(x2, y2)

line1 = 0

MousePointer = 0

End If

If circle1 = 1 Then

x2 = X

y2 = Y

Circle (x1, y1), Sqr((x1 - x2) ^ 2 + (y1 - y2) ^ 2)

circle1 = 0

MousePointer = 0

End If

End Sub

‘确定当前绘图所用颜色;

Private Sub Label1_Click()

ForeColor = RGB(255, 0, 0)

End Sub

Private Sub Label2_Click()

ForeColor = RGB(0, 0, 255)

End Sub

Private Sub Label3_Click()

ForeColor = RGB(0, 255, 0)

End Sub

Private Sub Label4_Click()

ForeColor = RGB(0, 0, 0)

End Sub

Private Sub Label5_Click()

ForeColor = RGB(255, 255, 255)

End Sub

4 编译形成桌面可执行文件

通过VB窗口的文件菜单,单击“生成 FRM_HT.EXE…”菜单项,选择生成文件存放的位置(如直接放置在桌面),输入生成可执行文件的文件名(绘图窗口.exe),单击确定按钮,即可生成可执行文件。

在上课过程中,只要将该窗口打开,在需要使用时,用Alt+Tab组合键切换窗口,即可实现临时绘图的功能,使用非常方便。

参考文献:

[1]林永,张乐强.Visual Basic 6.0用户编程手册.人民邮电出版社出版,1999,11月第1版,ISBN 7-115-07672-3/TP 1024.

[2](美)布洛雷(Brierley,E)等.王建华.等.译.Visual Basic 6 开发人员指南(The Waite Group’s Visual Basic 6. How-To).机械工业出版社,1999年1月第1版,ISBN 7-111-06985-4.

注:“本文中所涉及到的图表、公式注解等形式请以PDF格式阅读原文。”

上一篇:利用未标识文档提高中心分类法性能的研究 下一篇:钻井数据管理指挥处理系统的开发设计