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,你可以截取包括选定区域.全屏幕.窗口.窗口内的控件甚至网页的图像.通过内置的强大插件机制,你可以在截图后,对图像 ...
随机推荐
- 通过网络得到html,并解析出其中网址(JAVA程序)
网络版程序: import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; ...
- javaWeb学习总结(10)- EL函数库(2)
一.EL函数库介绍 由于在JSP页面中显示数据时,经常需要对显示的字符串进行处理,SUN公司针对于一些常见处理定义了一套EL函数库供开发者使用. 这些EL函数在JSTL开发包中进行描述,因此在JSP页 ...
- EIGRP负载均衡、手工汇总、泄露明细、安全认证
基于6.6.6.6/24访问13.1.1.1/24进行负载均衡实例图 一.等价负载均衡 等价负载均衡前,R5路由器背后的6.6.6.6/24访问R1的13.1.1.1/24, 从15.1.1.0/24 ...
- Scrapy教程--豆瓣电影图片爬取
一.先上效果 二.安装Scrapy和使用 官方网址:https://scrapy.org/. 安装命令:pip install Scrapy 安装完成,使用默认模板新建一个项目,命令:scrapy s ...
- cpp(第十三章)
1.动态(晚期)联编需要显示定义复制构造函数,赋值运算符,虚构函数. 2.纯虚类不能声明对象. 3.赋值运算符的特征标随类而异. 4.返回类型协变,重新定义继承的方法,应确保与原来的原型完全相同,但如 ...
- javaCV开发详解之技术杂烩:javaCV能帮我们做什么?能实现什么功能?ffmpeg和openCV能实现功能,javaCV如何做到更快、更简单的实现相应的功能?等等一堆实用话题
前言: 该篇文章旨在帮助刚接触javaCV的盆友系统的认识音视频.javaCV.图像处理相关的体系知识和一些实用的知识. 序: javaCV早期因为内置了openCV库,所以常用来做图像识别应用,现在 ...
- Elasticsearch VS Solr
最近公司用到了ES搜索引擎,调研发现大公司常用的搜索引擎还有Solr. 鉴于 Lucene 强大的特性和稳定性,有很多种基于 Lucene 封装的企业级搜索平台.其中最流行有两个:Apache Sol ...
- 《Python编程从入门到实践》_第六章_字典
一个简单的字典 #用户信息 user = {','city':'shanghai'} print(user['name']) print(user['age']) print(user['city'] ...
- android进入adb shell步骤及修改sqlite数据库文件的权限
1 准备工作 (1)将adb.exe从 \Sdk\platform-tools目录下移动到 \Sdk\tools目录下(主要是看emulator这几个文件在哪个文件夹就把adb.exe移动到哪个文件 ...
- JAVA中使用JSONObject对象必备
JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互.本文将快速讲解 JSON 格式,并通过代码示例演示如 ...