VB6之截图
今天先把主要逻辑写出来,如果有时间就实现一个真正的截图工具。
- Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, _
- ByVal X As Long, _
- ByVal Y As Long, _
- ByVal nWidth As Long, _
- ByVal nHeight As Long, _
- ByVal hSrcDC As Long, _
- ByVal xSrc As Long, _
- ByVal ySrc As Long, _
- ByVal dwRop As Long) As Long
- Private OnDraw As Boolean
- Private OnDrag As Boolean
- Private EndDraw As Boolean
- Private LocalX As Single
- Private LocalY As Single
- Private DragX As Single
- Private DragY As Single
- Private Sub Form_Load()
- OnDraw = False
- OnDrag = False
- EndDraw = False
- Shape2().Width = *
- Shape2().Height = *
- For i = To
- Call Load(Shape2(i))
- Shape2(i).Width = *
- Shape2(i).Height = *
- Next
- Call ShowShape(False)
- End Sub
- Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
- 'drag the rect
- If Button = vbLeftButton And EndDraw = True Then
- If X > Shape1.Left And X < (Shape1.Left + Shape1.Width) And _
- Y > Shape1.Top And Y < (Shape1.Top + Shape1.Height) Then
- OnDrag = True
- Me.MousePointer = vbSizeAll
- DragX = X
- DragY = Y
- Exit Sub
- End If
- End If
- 'draw the rect
- If Button = vbLeftButton And OnDraw = False Then
- Me.MousePointer = vbCrosshair
- LocalX = X
- LocalY = Y
- Shape1.Left = X
- Shape1.Top = Y
- Shape1.Width = *
- Shape1.Height = *
- Call MoveShape
- Call ShowShape(False)
- OnDraw = True
- End If
- End Sub
- Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
- 'drag the rect
- If Button = vbLeftButton And OnDrag = True Then
- Shape1.Left = LocalX - (DragX - X)
- Shape1.Top = LocalY - (DragY - Y)
- Call MoveShape
- Exit Sub
- End If
- If Button = vbLeftButton And OnDraw = True Then
- If X > LocalX Then
- Shape1.Width = X - LocalX
- Else
- Shape1.Width = LocalX - X
- Shape1.Left = LocalX - Shape1.Width
- End If
- If Y > LocalY Then
- Shape1.Height = Y - LocalY
- Else
- Shape1.Height = LocalY - Y
- Shape1.Top = LocalY - Shape1.Height
- End If
- Call MoveShape
- Call ShowShape(True)
- End If
- End Sub
- Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
- If Button = vbLeftButton Then
- If OnDrag = True Then
- OnDrag = False
- LocalX = Shape1.Left
- LocalY = Shape1.Top
- End If
- Me.MousePointer = vbDefault
- Call DrawShape
- OnDraw = False
- EndDraw = True
- ElseIf Button = vbRightButton Then
- 'RESET
- Call ShowShape(False)
- OnDraw = False
- OnDrag = False
- EndDraw = False
- End If
- End Sub
- Private Sub MoveShape()
- Shape2().Left = Shape1.Left
- Shape2().Top = Shape1.Top
- Shape2().Left = Shape1.Left + Shape1.Width / - ( * ) /
- Shape2().Top = Shape1.Top
- Shape2().Left = Shape1.Left + Shape1.Width - ( * )
- Shape2().Top = Shape1.Top
- Shape2().Left = Shape1.Left + Shape1.Width - ( * )
- Shape2().Top = Shape1.Top + Shape1.Height / - ( * ) /
- Shape2().Left = Shape1.Left + Shape1.Width - ( * )
- Shape2().Top = Shape1.Top + Shape1.Height - ( * )
- Shape2().Left = Shape1.Left + Shape1.Width / - ( * ) /
- Shape2().Top = Shape1.Top + Shape1.Height - ( * )
- Shape2().Left = Shape1.Left
- Shape2().Top = Shape1.Top + Shape1.Height - ( * )
- Shape2().Left = Shape1.Left
- Shape2().Top = Shape1.Top + Shape1.Height / - ( * ) /
- End Sub
- Private Sub ShowShape(ByVal bool As Boolean)
- Shape1.Visible = bool
- For i = To
- Shape2(i).Visible = bool
- Next
- DoEvents
- End Sub
- Private Sub DrawShape()
- Call ShowShape(False)
- Call Picture1.Cls
- Call BitBlt(Picture1.hDC, &, &, Shape1.Width / , Shape1.Height / , Me.hDC, Shape1.Left / , Shape1.Top / , vbSrcCopy)
- Call ShowShape(True)
- End Sub
贴张图:
VB6之截图的更多相关文章
- [置顶] VB6基本数据库应用(三):连接数据库与SQL语句的Select语句初步
同系列的第三篇,上一篇在:http://blog.csdn.net/jiluoxingren/article/details/9455721 连接数据库与SQL语句的Select语句初步 ”前文再续, ...
- vb6 控件未注册问题解决
打开项目时弹出如题错误. 另附一个帖子:http://bbs.csdn.net/topics/390580540,这个帖子讨论的不错,可以提供很多思路. 解决办法:http://rewwensoftw ...
- VS2010 开发 VB6.0 activeX控件 dll
项目源码 https://download.csdn.net/download/csdn_z_s/10427764 开发环境 操作系统: win7 64位 旗舰版 Java语言开发环境: Eclip ...
- 解决VB6.0中不能加载MSCOMCTL.OCX的错误提示
VB6.0毕竟是很古老的开发工具了,其对所使用的第三方组件依赖性比较强,例如在打开从其它电脑上拿来的VB6.0的软件(系统)的工程文件(源代码)时,经常会遇到"不能加载MSCOMCTL.OC ...
- 通过adb方式给安卓手机截图的cmd批处理文件
@echo off rem 通过adb方式截图rem 需要安装adb ,一般安装了android sdk 默认带了adb ,路径为sdk目录的android-sdk\platform-toolsr ...
- canvas与html5实现视频截图功能
这段时间一直在研究canvas,突发奇想想做一个可以截屏视频的功能,然后把图片拉去做表情包,哈哈哈哈哈哈~~ 制作方法: 1.在页面中加载视频 在使用canvas制作这个截图功能时,首先必须保证页面上 ...
- 记:MySQL 5.7.3.0 安装 全程截图
前言: 下一个班快讲MySQL数据库了,正好把服务器里面的MySQL卸了重装了一下. 截个图,作为笔记.也正好留给需要的朋友们. 目录: 下载软件 运行安装程序 安装程序欢迎界面 许可协议 查找更新 ...
- Atitit onvif 协议截图 getSnapshotUri 使用java
Atitit onvif 协议截图 getSnapshotUri 使用java 1.1. ONVIF Device Test Tool1 1.2. 源码2 1.3. 直接浏览器访问http://192 ...
- 在Ubuntu|CentOS上安装Shutter截图工具及快捷键设置
简介 Shutter前身叫GScrot,它是一款相当棒的截图软件. 通过Shutter,你可以截取包括选定区域.全屏幕.窗口.窗口内的控件甚至网页的图像.通过内置的强大插件机制,你可以在截图后,对图像 ...
随机推荐
- 开涛spring3(9.2) - Spring的事务 之 9.2 数据库事务概述
9.2.1 概述 Spring框架支持事务管理的核心是事务管理器抽象,对于不同的数据访问框架(如Hibernate)通过实现策略接口 PlatformTransactionManager,从而能支持 ...
- sar使用
http://88fly.blog.163.com/blog/static/1226803902012514710581/
- qrcode生成二维码插件
今天我要和大家分享的是利用qrcode来生成二维码. 首先要使用qrcode就需要引用文件,我这边用的是1.7.2版本的jquery加上qrcode <script type="tex ...
- Spring Boot的properties配置文件读取
我在自己写点东西玩的时候需要读配置文件,又不想引包,于是打算扣点Spring Boot读取配置文件的代码出来,当然只是读配置文件没必要这么麻烦,不过反正闲着也是闲着,扣着玩了.具体启动过程以前的博客写 ...
- 隐马尔科夫模型HMM(一)HMM模型
隐马尔科夫模型HMM(一)HMM模型基础 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数(TODO) 隐马尔科夫模型HMM(四)维特比 ...
- ASP.NET MVC5(二):控制器、视图与模型
前言 本篇博文主要介绍ASP.NET MVC中的三个核心元素:控制器.视图与模型,以下思维导图描述了本文的主要内容. 控制器 控制器简介 在介绍控制器之前,简单的介绍一下MVC工作原理:URL告知路由 ...
- Java基本之数据类型
一.创建一个简单的Java应用程序 public class Code { public static void main(String[]args) { System.out.println(&qu ...
- Ajax 异步上传文件
需要引用js jquery.form 前端代码 <form action="/Save" id="mainForm" method="post& ...
- mac中使用 sourcetree 的快速配置和git服务器登录
问题: 1.mac中下载sourcetree配置仓库地址,一直在提示输入密码,无法登录成功,更无法获取源码. 2.找不到配置仓库时的账号密码,只看到地址. 场景: git服务器:自己的GIT服务器,非 ...
- Mac下安装MySQL、Workbench以及建数据库建表最基础操作
刚用上Mac,什么都不懂,加之以前还没有用过mysql,就想着在Mac上装一个mysql来自己玩,奈何,在网上找了大半天,没有一个干货!愤怒!下面是我安装的过程,希望能帮到和我情况差不多的朋友 首 ...