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

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:xsl_1
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文介绍在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格式阅读原文。”
其他文献
摘要:分析了Web服务应用在E-Learning中存在的问题和解决方案,说明利用Web服务可以解决E-Learning发展过程中存在的一系列问题,实现了E-Learning学习资源和系统功能的分布式存储、发现、共享和重用以及动态交换内容,使系统更加灵活和个性化。  关键词:Web服务;E-Learning;应用  中图分类号:G434文献标识码:A文章编号:1009-3044(2007)16-30
期刊
摘要:VoWLAN是当前研究的热点,VCFCA机制有效地提高了VoWLAN的容量。如果对VCFCA做适当的改进,则VCFCA能适应VBR,并增强了鲁棒性。  关键词:Voice over WLAN ;VCFCA;VBR  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)16-30989-02  VCFCA Oriented to VBR  MA Sheng-zheng1
期刊
摘要:计算机网络调查是一种新兴的信息收集和处理方式,具有传统调查方式所不具备的很多优势,但也存在很多缺陷和局限性。文章从理论和实践上对网络调查的优势和劣势以及适用范围进行了论述,以期使这种调查方式正确地在实践中加以应用。  关键词:网络调查;局限性;适用范围  中图分类号:TP393 文献标识码:A文章编号:1009-3044(2007)16-30991-02  The Strengths & W
期刊
摘要:介绍一种基于gm/ID 参数特性的模拟电路优化设计方法,并以CMOS密勒补偿运算放大器的设计为例具体阐述该方法的基本设计步骤。该方法以统一的gm/ID与ID/(W/L)的关系曲线为基本设计出发点,综合电路的其它设计要求,而提出的一种优化性能指标的设计思路。对所设计的运算放大器模拟仿真验证了这种方法的有效性。  关键词:运算放大器;CMOS;gm/ID  中图分类号:TN432文献标识码:A文
期刊
摘要:用MATLAB程序演示了任意长度的通电螺线管产生的磁感应强度的截面分布图,结合图像分析了通电螺线管周围磁感应强度的特点。将多媒体与物理教学相结合,提高教学效果,培养学生的学习兴趣。  关键词:MATLAB;通电螺线管;磁感应强度物理教学  中图分类号:TP391文献标识码:A文章编号:1009-3044(2007)16-31119-02  The Simulation Experiment
期刊
摘要:模式匹配在整个说话人识别系统中具有重要的作用,其采取的方法将直接影响系统的识别率。本文介绍了一种模糊矢量量化(FVQ)方法,通过对模糊C均值(FCM)聚类算法的分析,提出了基于减法聚类和改进的模糊C均值聚类算法相结合的说话人识别方法,实验表明该方法提高了识别率,是一种行之有效的说话人识别方法。  关键词:说话人识别;模式匹配;FCM  中图分类号:TP18 文献标识码:A文章编号:1009-
期刊
摘要:移动ad hoc 网络由于其动态拓扑、无线信道以及各种资源有限的特点,特别容易遭受拒绝服务(DOS) 攻击。在分析传统防御机制的基础上,提出了移动ad hoc 网络中一种新的DOS 攻击防御机制——基于优先级和缓存控制,着重保护节点的资源。  关键词:移动ad hoc 网络;路由协议;网络安全;拒绝服务;资源  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)16
期刊
摘要:利用Chemsketch可方便构造出分子和晶体等的三维模型,以正十二面体为例,介绍了三维动态模型的绘制方法和生动形象地表达其结构的方法。  关键词:Chemsketch;分子;晶体结构  中图分类号:TP302.4 文献标识码:A文章编号:1009-3044(2007)16-31130-01  Application of Chemsketch in Three-dimensional Sp
期刊
摘要:图像采集是图像处理中比较关键的技术,在图像处理、计算机视觉和视频技术中有着重要的应用。通过具体的实例,阐述了在VC++中利用AVICAP.DLL实现图像采集的方法和技巧。  关键词:VC++;AVICAP.DLL;图像采集  中图分类号:TP391文献标识码:A文章编号:1009-3044(2007)16-31133-02  Realizing Image Acquisition with
期刊
摘要:传统C/S模式的流媒体服务系统已不能满足要求,新兴的p2p技术可以和流媒体技术结合,解决网络的负载均衡问题。本文提出基于p2p的流媒体直播系统,利用p2p技术本身的优势,大大减轻服务器的负担,且在客户负载较重的情况下,能够获取流畅高质的视频。  关键词:流媒体;p2p;网络直播  中图分类号:TP393 文献标识码:A文章编号:1009-3044(2007)16-31152-01  Base
期刊