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,你可以截取包括选定区域.全屏幕.窗口.窗口内的控件甚至网页的图像.通过内置的强大插件机制,你可以在截图后,对图像 ...
随机推荐
- Eclipse 扩展activiti-desinger 安装
activiti-desinger 工作流画图工具分为在线安装.离线安装两种方式:下图提供当前所用eclipse版本信息 1.1 在线安装 打开Eclipse -> Help -& ...
- 【设计模式】之开闭原则(OCP)
开闭原则是面向对象设计的一个重要原则,其定义如下: 开闭原则(Open-Closed Principle, OCP):一个软件实体应当对扩展开放,对修改关闭.即软件实体应尽量在不修改原有代码的情况下进 ...
- String为值类型还是引用类型
关于String为值类型还是引用类型的讨论一直没有平息,最近一直在研究性能方面的问题,今天再次将此问题进行一次明确.希望能给大家带来点帮助. 如果有错误请指出. 来看下面例子: //值类型 int a ...
- 移动端页面以rem为单位设置字体大小不生效解决方法
这个问题在前端H5页面开发可以说是一个老生常谈的问题了.由于以前所有遇到的问题以及解决方法都会以文档的形式记录在电脑里,而非github或者blog,所以现在才一点一滴的整理上来,就当是一个心路历程吧 ...
- Spring+SpringMVC+MyBatis深入学习及搭建(六)——MyBatis关联查询
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6923464.html 前面有将到:Spring+SpringMVC+MyBatis深入学习及搭建(五)--动 ...
- dotnet 命令实战
以下用实例串起dotnet所有命令,带你玩转dotnet命令. 1.创建(dotnet new) 首先我们创建一个项目,这里我们创建控制台程序,命令如下图所示. dotnet new dotnet n ...
- dede系统自定义变量删除方法
之前添加了个联系电话的系统变量,忘记写描述,结果就显示个冒号,很难看.这样的就要删除了重来,那么织梦怎么删除添加的变量呢?其实很简单.两种方法: 第一种:执行SQL语句.在织梦后台执行-系统-SQL命 ...
- Java代码编写规范(不是标准规范,自行整理,无须纠结)
最近回过头来给以前的项目增加功能,发现之前写的注释非常不全,代码也非常的不整洁,有些地方写的''窝七八烂的,看着很不舒服:又恰好经理最近也经常跟我提起代码规范,我们就讨论了一下代码规范的重要性和必要性 ...
- Struts+jdbc+分页 实例
根据项目里分页实例,带有注解. package org.tarena.netctoss.dao.impl; import java.sql.Connection; import java.sql.Pr ...
- udl文件测试数据库连接
直接建一个udl后缀的文件(新建txt文件,改后缀) 然后会默认有个小电脑标志,双击打开就可以看到,可以用来配置数据库连接信息,可以测试连接,如果连接通过,可以再用记事本打开这个udl文件,里面就有生 ...