vb模仿画图软件

article/2025/6/28 19:01:55

文章目录

    • 介绍
    • 代码&制作
      • v1.0
      • v2.0
      • v3.0
      • v3.1
      • v4.x:新的更新!!!
    • 下载地址
    • 附言

介绍

制作:Morgan   
工具:VisualBasic6.0
邮箱:MorganFish0508@163.com1037502595@qq.com
GitHub:https://github.com/MorganNotFound
CSDN:https://blog.csdn.net/MorganFish
欢迎点赞+收藏+下载+评论   

附代码,附源程序,附成品

代码&制作

这个程序说难不难,就是制作要有耐心,否则难以完成。不过这也是优点,可以尽情创作、更改,在总体的框架结构下,可以一步步的完善,下面我将展示一下我三个阶段的代码,并展示我的制作方法(但准确来说如果要改进还可以有v4.0、v5.0版本)

v1.0

(一)新建一个标准exe并适当调大窗口,为画图提供空间   
(二)插入三个HScrollBar控件即水平滚动条,并使用三个Label来对滚动条控制对象进行标注,右侧再加入一个垂直滚动条VScrollBar,更改HScroll1~3的Min属性为0,Max为255,VScroll1的Min为1,Max为15   
(三)插入一个Label,删除其Caption   
(四)插入代码

新建
插入控件
插入代码
代码如下:

Private Sub Form_Load()
HScroll1.Min = 0
HScroll1.Max = 255
HScroll2.Min = 0
HScroll2.Max = 255
HScroll3.Min = 0
HScroll3.Max = 255
VScroll1.Min = 1
VScroll1.Max = 15
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Form1.CurrentX = X
Form1.CurrentY = Y
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then Line -(X, Y), RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)
End Sub
Private Sub HScroll1_Change()
Label4.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)
End Sub
Private Sub HScroll2_Change()
Label4.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)
End Sub
Private Sub HScroll3_Change()
Label4.BackColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)
End Sub
Private Sub VScroll1_Change()
Form1.DrawWidth = VScroll1.Value
End Sub

这里是运用了MouseDown和MouseMove的检测,记录按下鼠标时的坐标,然后使用line进行绘画
在这里插入图片描述

v2.0

使用一个line1替代了变换颜色的label,使其可以同时预览画笔粗细,为了方便还将VScroll换成了HScroll,新增TextBox显示RGB色号
先看看效果:
v2.0

我插入了许多色块(label5(index as integer)),单击选中绘画颜色,成品都在我的GitHub仓库,代码和v3.0的合并在了一起,由于3的代码其实不太完善,我都使用'把代码禁用了,可以自己更改哦~
注意:此时的Textbox仅可以用来输出,v3.0可以输入数据,但是输错类型将退出程序,v3.1修复了此bug

v3.0

新增自定义颜色存储并支持画圆(增用了一个Combo1),并升级了TextBox使其同时可以控制颜色,即可以输入来改变颜色
看看效果:
v3.0

再看看代码:

Private Sub Command1_Click()
Form1.Cls
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
HScroll1.Min = 0
HScroll1.Max = 255
HScroll2.Min = 0
HScroll2.Max = 255
HScroll3.Min = 0
HScroll3.Max = 255
HScroll4.Min = 1
HScroll4.Max = 20
Combo1.AddItem "line"
'Combo1.AddItem "circle"
'Combo1.AddItem "straight line"
Label8.Visible = False
HScroll5.Visible = False
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Form1.CurrentX = X
Form1.CurrentY = Y
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Combo1.Text = "line" Then
Label8.Visible = False
HScroll5.Visible = False
If Button = 1 Then Line -(X, Y), Line1.BorderColor
End If
'If Combo1.Text = "circle" Then
'Label8.Visible = True
'HScroll5.Visible = True
'If Button = 1 Then Circle (X, Y), ((M - X) ^ 2 + (N - Y) ^ 2) ^ (1 / 2), Line1.BorderColor
'End If
'If Combo1.Text = "line" Then
'Label8.Visible = False
'HScroll5.Visible = False
'If Button = 1 Then Line Step(X, Y)-Step(M, N), Line1.BorderColor
'End If
End Sub
'Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Form1.CurrentX = M
'Form1.CurrentY = N
'End Sub
Private Sub HScroll1_Change()
Line1.BorderColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)
Text1.Text = HScroll1.Value
End Sub
Private Sub HScroll2_Change()
Line1.BorderColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)
Text2.Text = HScroll2.Value
End Sub
Private Sub HScroll3_Change()
Line1.BorderColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)
Text3.Text = HScroll3.Value
End Sub
Private Sub HScroll4_Change()
Form1.DrawWidth = HScroll4.Value
Line1.BorderWidth = HScroll4.Value
Text4.Text = HScroll4.Value
End Sub
Private Sub Label5_Click(Index As Integer)
Line1.BorderColor = Label5(Index).BackColor
End Sub
Private Sub label6_click()
Line1.BorderColor = Label6.BackColor
End Sub
Private Sub Label7_Click()
Label6.BackColor = Line1.BorderColor
End Sub
Private Sub Text1_Change()
HScroll1.Value = Text1.Text
End Sub
Private Sub Text2_Change()
HScroll2.Value = Text2.Text
End Sub
Private Sub Text3_Change()
HScroll3.Value = Text3.Text
End Sub
Private Sub Text4_Change()
HScroll4.Value = Text4.Text
End Sub

我原想添加画直线与圆的代码,结果发现并不令人满意,就禁用了hhh…不过基本算是完成了目标,并适当的美化了程序

v3.1

嘿嘿,为什么要有v3.1咧?是因为我闲嘛……不不不当然不是,这很重要,众所周知,vb只要类型不匹配就退出,万一输数据的时候一手误就退出咋办咧?别急别急,使用if判断一下不就好了嘛!先看看代码:

Private Sub Command1_Click()
Form1.Cls
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
HScroll1.Min = 0
HScroll1.Max = 255
HScroll2.Min = 0
HScroll2.Max = 255
HScroll3.Min = 0
HScroll3.Max = 255
HScroll4.Min = 1
HScroll4.Max = 20
Combo1.AddItem "line"
'Combo1.AddItem "circle"
'Combo1.AddItem "straight line"
Label8.Visible = False
HScroll5.Visible = False
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Form1.CurrentX = X
Form1.CurrentY = Y
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Combo1.Text = "line" Then
Label8.Visible = False
HScroll5.Visible = False
If Button = 1 Then Line -(X, Y), Line1.BorderColor
End If
'If Combo1.Text = "circle" Then
'Label8.Visible = True
'HScroll5.Visible = True
'If Button = 1 Then Circle (X, Y), ((M - X) ^ 2 + (N - Y) ^ 2) ^ (1 / 2), Line1.BorderColor
'End If
'If Combo1.Text = "line" Then
'Label8.Visible = False
'HScroll5.Visible = False
'If Button = 1 Then Line Step(X, Y)-Step(M, N), Line1.BorderColor
'End If
End Sub
'Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
'Form1.CurrentX = M
'Form1.CurrentY = N
'End Sub
Private Sub HScroll1_Change()
Line1.BorderColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)
Text1.Text = HScroll1.Value
End Sub
Private Sub HScroll2_Change()
Line1.BorderColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)
Text2.Text = HScroll2.Value
End Sub
Private Sub HScroll3_Change()
Line1.BorderColor = RGB(HScroll1.Value, HScroll2.Value, HScroll3.Value)
Text3.Text = HScroll3.Value
End Sub
Private Sub HScroll4_Change()
Form1.DrawWidth = HScroll4.Value
Line1.BorderWidth = HScroll4.Value
Text4.Text = HScroll4.Value
End Sub
Private Sub Label5_Click(Index As Integer)
Line1.BorderColor = Label5(Index).BackColor
End Sub
Private Sub label6_click()
Line1.BorderColor = Label6.BackColor
End Sub
Private Sub Label7_Click()
Label6.BackColor = Line1.BorderColor
End Sub
Private Sub Text1_Change()
If Text1.Text = "" Then
Text1.Text = 0
End If
If Text1.Text > 255 Then
Text1.Text = 255
End If
HScroll1.Value = Text1.Text
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Then Exit Sub
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
End Sub
Private Sub Text2_Change()
If Text2.Text = "" Then
Text2.Text = 0
End If
If Text2.Text > 255 Then
Text2.Text = 255
End If
HScroll2.Value = Text2.Text
End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Then Exit Sub
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
End Sub
Private Sub Text3_Change()
If Text3.Text = "" Then
Text3.Text = 0
End If
If Text3.Text > 255 Then
Text3.Text = 255
End If
HScroll3.Value = Text3.Text
End Sub
Private Sub Text3_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Then Exit Sub
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
End Sub
Private Sub Text4_Change()
If Text4 = "" Then
Text4.Text = 1
End If
If Text4.Text = 0 Then
Text4.Text = 1
End If
If Text4.Text > 20 Then
Text4.Text = 20
End If
HScroll4.Value = Text4.Text
End Sub
Private Sub Text4_KeyPress(KeyAscii As Integer)
If KeyAscii = 8 Then Exit Sub
If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0
End Sub

这个通过禁用数字和退格之外的按键来确保不会输错,又通过将超出范围的数字给强行改回来确保不会在清空Textbox的时候报错,不理解的可以到网上某度一下

v4.x:新的更新!!!

此版本还处在开发阶段但已上传到GitHub,新增了橡皮擦和本地图片预览与保存等许多功能,但是目前还未完成对于本地图片编辑功能的开发,努力ing…

下载地址

点此前往下载
作者会努力更新,尽量高度还原程序,也邀请大家一起贡献力量哦~

附言

其实还有许多美中不足之处,如果能想到更好的方案,烦请各位朋友在评论区指教,谢谢!
如果您喜欢我的作品,请点赞&关注哦,谢谢啦!


http://chatgpt.dhexx.cn/article/yfpVu6mN.shtml

相关文章

程序员软件工程常用的画图软件推荐

常用图&#xff0c;ER 图&#xff0c;类图等 画这样的图&#xff0c;一般使用 Draw.io 这款免费的在线网页绘图工具就可以解决了。 优点如下&#xff1a; 无需登录&#xff0c;直接进入网页就可以直接使用海量模板新建项目。 https://app.diagrams.net 进入编辑页面&#xff…

推荐好用在线画图网站

1.免费在线流程图思维导图 2.多功能设计及制图工具 3.Flowchart Maker & Online Diagram Software

免费画图软件推荐 - draw.io

一、背景 很早之前在 windows 系统上使用 visio 画图很爽。 自从用了 mac 之后没找到特别趁手的画图软件。 之前尝试过 processon &#xff0c;挺不错&#xff0c;可以在线画图&#xff0c;但是有数量限制&#xff0c;超过几个之后只能付费。 而且入职阿里之后公司不允许用外…

python画图软件是哪个_python画图软件是哪个

Matplotlib是一个Python的2D绘图库&#xff0c;它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。通过Matplotlib&#xff0c;开发者可以仅需要几行代码&#xff0c;便可以生成绘图。一般可绘制折线图、散点图、柱状图、饼图、直方图、子图等等。Matplot使用Num…

这款手绘风格的在线制图软件超棒

在线流程图制作软件 说到流程图制作&#xff0c;你可能会用Microsoft Office Visio&#xff0c;然而这个软件太重量级了。现在在线制图软件也做的很好了&#xff0c;比如ProcessOn&#xff0c;它的用户体验非常好。但是这款软件免费版只能制作9张图&#xff0c;之后就需要付费…

SMC在线气动制图软件PneuDraw

SMC在线气动制图软件PneuDraw https://etools.smc.at/ 进入后&#xff0c;页面各区如下&#xff1a; 1.工具栏&#xff08;和office的工具栏差不多&#xff0c;都是各种基础设置&#xff0c;文件导入导出功能&#xff09; 2.常用功能按钮&#xff08;如缩放&#xff0c;连线&…

计算机自带的画图软件工具介绍,电脑自带画图软件

win7自带画图工具是win7电脑系统里面自带的画图工具。如果你的电脑里面没有这款工具&#xff0c;但是你又需要它的话&#xff0c;您可以来比克尔下载&#xff0c;感受与电脑自带画图工具一样的体验。 画图在系统里所在位置&#xff1a;win-所有程序-附件-画图 win7自带画图工具…

小学计算机课画图软件,小学小学三年级信息技术使用画图软件(一)

小学小学三年级信息技术使用画图软件(一) (3页) 本资源提供全文预览&#xff0c;点击全文预览即可全文预览,如果喜欢文档就下载吧&#xff0c;查找使用更方便哦&#xff01; 3.9 积分 第一课第一课 在电脑上画画在电脑上画画——使用画图软件(一)教学目标:1、认识“画图”软件…

用计算机画图软件画画教程,电脑画图软件有什么使用技巧,电脑画图软件教程...

一、第一步是点击右下角的“开始”图标。在开头上方&#xff0c;出现一个对话框&#xff0c;您找到“所有应用程序”&#xff0c;您右键单击鼠标&#xff0c;在出现的对话框中&#xff0c;您找到“附件”&#xff0c;您左键单击鼠标&#xff0c;在“附件”的右侧出现一个对话框…

常用9款在线作图工具,总有一款适合你!

转自&#xff1a;精选七款国内外著名的在线作图工具 最近想在团队里使用在线作图工具&#xff0c;使用的在线工具的原因是&#xff0c;一来免得大家再安装本地软件&#xff0c;二来在线工具在多人共享&#xff0c;团队协作方面的优势更大&#xff0c;再者就是只要有网络&#x…

在线画图工具绘制流程图怎样画

现在有很多可以在线画图的网站。软件得到了很多人的青睐&#xff0c;并且这些在线画图工具给用户的体验度以及绘制时的感觉都是极佳的一致获得好评&#xff0c;那利用在线画图工具绘制流程图怎样画呢&#xff1f;下面分享的在迅捷画图中绘制流程图的操作方法介绍&#xff0c;希…

Draw.io | 一款强大且支持在线编辑和导出的流程图绘制神器

目录 &#x1f48c; 写在前面 &#x1f5a5;️ 软件介绍 &#x1f5a5;️ 使用方式 1. Draw.io 的核心设计元素 1.1 绘图区 1.2 快速开始 2. Draw.io 的基本操作 2.1 移动、多选、复制与删除 2.2 创建链接 2.3 图形替换与旋转 3. 使用 Draw.io 绘制简单流程图 3.1 基本…

常见的考勤管理系统有哪些功能?

今天给大伙介绍一下欢雀HR系统&#xff0c;考虑到最近很多企业都在咨询考勤模块&#xff0c;所以今天简单介绍下欢雀HR系统里考勤管理模块的各个功能。如果有哪些地方没说到&#xff0c;希望大家指出。 首先&#xff0c;企业通过欢雀APP&#xff0c;员工可以一键打卡&#xff0…

汉王考勤管理系统使用教程

汉王考勤管理系统使用教程 软件简介 汉王考勤管理系统标准版是汉王公司集多年从事考勤系统管理与研发经验推出的新一代C/S架构的考勤管理系统&#xff0c;可应用于局域网和广域网。结合汉王人脸通考勤产品&#xff0c;公司考勤管理员通过本系统可以简单清晰地统计员工考勤信息…

企业考勤管理系统

目录 TOC \o "1-3" \h \u 1 概述................................................................................................................................. 1 1.1设计背景.........................................................................…

中控考勤机web3.0登录账号密码

公司考勤机是中控的&#xff0c;最近有个hr项目可能需要登陆web&#xff0c;但没有密码&#xff0c;怎么搞。。。。 上中控官网查询2种方式默认密码&#xff1a; 1.账户&#xff1a;administrator,密码&#xff1a;123456 第二种为直接使用如下地址 http://192.168.2.253/c…

强大的考勤管理

考勤管理是OA系统中一项很有用的功能。 总体来说&#xff0c;通过OA系统进行考勤有两种方式&#xff1a;一种是将OA系统与考勤机连接&#xff0c;员工在考勤机上打卡&#xff0c;管理员在OA系统上汇总和管理考勤数据&#xff1b;另一种则是直接在OA系统上打卡&#xff0c;直接统…

用Python读取考勤机卡式报表并处理成常规的行式报表格式

1. 场景&#xff1a; 在做公司的临时工考勤工资表时&#xff0c;考勤机导出的excel为卡式报表&#xff0c;看很直观&#xff0c;但处理起来麻烦。所以做了一个odoo模块用于将卡式报表处理成更常规的适合财务统计的普通报表。语言Python,用到的模块为xlrd和xlwt。 2.先看效果 …

基于51单片机的指纹考勤机密码锁系统

目录 第1章 概述 4 1.1 指纹识别技术的发展 4 1.2 指纹识别原理 5 1.3 系统设计目的及意义 6 1.4 工作流程 6 第2章 硬件介绍和设计 8 2.1 单片机及最小系统 8 2.1.1 STC89C52单片机介绍 8 2.1.2 外部晶振的设计 10 2.1.3 复位电路的设计 11 2.2 液晶显示模块 12 2.2.1 12864系…

(考勤记录导出教程)指纹考勤机科密C21

0 需求 实验室的指纹考勤机型号是科密C21&#xff0c;需要连接电脑导出考勤记录 1 安装软件 官网下载链接&#xff1a;科密A1考勤管理系统V1.1.0.728安装包数据库 sqlserver 2014 express with advance service with sp3 官网下载链接&#xff1a;https://download.microsof…