登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

miaozk2006

点滴积累与收藏:关于技术,关于生活

 
 
 

日志

 
 

画图工具的VB实现  

2012-05-26 00:03:58|  分类: 编程-VB |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

直接上代码:

'用户可以随意的用mouse画图,也可以引入图片,然后进行简单的处理,主要是添加两个picture控件 和几个按钮 Dim x1!, v1!, x2!, v2!, a1!
Private Sub Command1_Click()                 ' 清屏的按钮
    Picture2.Cls               '清屏
End Sub

Private Sub Command2_Click()                 '画笔颜色的按钮
    CommonDialog1.ShowColor     ' 通过通用对话框,调用调色板选择画笔颜色
End Sub

Private Sub Command3_Click()                   '画笔粗细的按钮
    A1 = Val(InputBox("请输入画笔画线的宽度(1< x < 20):", "设置画笔画线宽度", 2))
    If A1 < 1 Or A1 > 20 Then
        MsgBox "画笔画线的宽度超出范围,请重新设置!"
        Command3.value = True                          '相当于mouse又点击了command3按钮
    End If
    Picture2.DrawWidth = A1
End Sub

Private Sub Command4_Click()                '打开图片的按钮
    CommonDialog1.Filter = "*.jpg|*.jpg|*.bmp|*.bmp|*.jpeg|*.jpeg|*.ico|*.ico|*.icon|*.icon"
    CommonDialog1.ShowOpen      ' 调用打开文件对话框
    If CommonDialog1.filename <> "" Then          '将选定的图形文件加载到图片框中
        Picture2.Picture = LoadPicture(CommonDialog1.filename)
    End If
End Sub

Private Sub Command5_Click()                '保存图片的按钮
    CommonDialog1.Filter = "*.jpg|*.jpg|*.bmp|*.bmp|*.jpeg|*.jpeg|*.ico|*.ico|*.icon|*.icon"
    CommonDialog1.ShowSave      ' 调用保存对话框
    If CommonDialog1.filename <> "" Then
        SavePicture Picture2.Image, CommonDialog1.filename       '保存图片
        MsgBox "照片保存成功!"
    End If
End Sub

Private Sub Command6_Click()
    End
End Sub

Private Sub Command7_Click()              '背景颜色的按钮
    CommonDialog1.ShowColor
    Picture2.BackColor = CommonDialog1.Color
End Sub

Private Sub Command8_Click()
    Text1 = Picture2.Point(X, Y)
End Sub

Private Sub Form_Load()
    A1 = 2           ' 画笔粗细的初始值为2

    Picture2.Left = 0
    Picture2.Top = 0
    Picture2.AutoSize = True
    VScroll1.Max = Abs(Picture1.Height - Picture2.Height)
    HScroll1.Max = Abs(Picture1.Width - Picture2.Width)
End Sub

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    X1 = X - 120
    Y1 = Y - 120 ' 保存mouse按键时的坐标值
    X2 = X - 120
    Y2 = Y - 120
    If Button = 1 Then      '如果是点击左键
        Picture2.DrawWidth = A1   ' 设置线条宽度为指定值
    ElseIf Button = 2 Then
        Picture2.DrawWidth = 1             ' 设定线条宽度为1,以画实线
        Picture2.DrawMode = 7             '设定图片框绘制模式为异或
    End If
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Me.MousePointer = 0             ' 设置mouse指针形状为默认的箭头
End Sub

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 2 Then         '按右键
        Picture2.Line (X1, Y1)-(X2, Y2), , B            '清楚以前所画矩形痕迹
        On Error Resume Next
        Picture2.DragMode = 13                          ' 设置绘制模式为复制笔
        Picture2.Line (X1, Y1)-(X - 120, Y - 120), Picture2.BackColor, BF
    End If

End Sub

Private Sub HScroll1_Scroll()
    Picture2.Left = HScroll1.value
End Sub

Private Sub Picture2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Picture2.MousePointer = 99   '设置用户自定义mouse指针图标
    Picture2.MouseIcon = LoadPicture(App.Path + "/pencil2.ico")  ' app.path为VB当前的工作路径
    If Button = 1 Then                                           '如果按了左键
        Picture2.PSet (X - 120, Y - 120), CommonDialog1.Color       '画线
    End If
    If Button = 2 Then                                           ' 判断是否按了右键
        Picture2.Line (X1, Y1)-(X2, Y2), , B                      ' 清除矩形所画的痕迹
        X2 = X - 120
        Y2 = Y - 120                                 '取当前坐标
        Picture2.Line (X1, Y1)-(X2, Y2), , B                    '用当前坐标重画矩形
    End If
End Sub

Private Sub VScroll1_Scroll()
    Picture2.Top = VScroll1.value
End Sub


VB相关


vbline的用法[]

画图工具的VB实现

VB 一个获得自己外网 IP 地址的程序代码

VB程序中实现IP地址子网掩码网关DNS的更改 []

VB 中应用 FSO 对象模型介绍(摘自网络)

[] VbFSO 对象的介绍

VB 画坐标轴

VB 二进制文件的操作

[VB]BMPJPGVBKeyCode常数用法

vb实时曲线的绘制和保存

VB操作EXCEL

vb初学回顾:最大公约数 最小公倍数 素数求取

vb 关于窗口样式的API以及处理文本的API参考

【引用】在VB6.0中实现弹出式菜单的几种方法

【引用】URLDownloadToFile_VB下载文件!

利用WinRar压缩和解压缩文件

VB 剪切板

VB实现指示窗口中拖动方框的程序

VB绘制走动的表针

如何用VB制作DLL文件

【引用】VB修改IP地址

VB多窗体退出代码

[]VB:如何检测到U盘的插拔(源代码)

巧用SendMessage函数扩展Treeview功能

vb中如何在任务管理器里面隐藏应用程序进程

如何实现VBEXCEL的无缝连接

一个API方式存取日志文件的模块[VB]

VB用记录集填充表格函数

VB打开文本文件各种方法

vb ClipBoard 剪切板应用(复制剪切粘贴)

【引用】窗口处理技巧大全 vb(窗体控件)

【转】 Md rd命令之VB

vb:读写文本文件

vb中实现真正锁定的带自定义菜单的文本控件

【引用】使用CommonDialogShowSave后如何判断是保存还是※取消?

vb 关于commondialog的多选VB获取Windows操作系统所有版本

vb UTF文本文件访问

VB编程中的Unicode vs Ansi

VBPiView4注册机

VB获取超过2G文件的大小

CopyMemory还要快的函数SuperCopyMemory

VB:编程效率快步提高之:十七种可用一行代码完成的技巧

VB画出来的五星红旗

Qt第一印象——QteQt


更多精彩>>>
  评论这张
 
阅读(998)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018