今天先把主要逻辑写出来,如果有时间就实现一个真正的截图工具。

  1. Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, _
  2. ByVal X As Long, _
  3. ByVal Y As Long, _
  4. ByVal nWidth As Long, _
  5. ByVal nHeight As Long, _
  6. ByVal hSrcDC As Long, _
  7. ByVal xSrc As Long, _
  8. ByVal ySrc As Long, _
  9. ByVal dwRop As Long) As Long
  10. Private OnDraw As Boolean
  11. Private OnDrag As Boolean
  12. Private EndDraw As Boolean
  13. Private LocalX As Single
  14. Private LocalY As Single
  15. Private DragX As Single
  16. Private DragY As Single
  17.  
  18. Private Sub Form_Load()
  19. OnDraw = False
  20. OnDrag = False
  21. EndDraw = False
  22.  
  23. Shape2().Width = *
  24. Shape2().Height = *
  25. For i = To
  26. Call Load(Shape2(i))
  27. Shape2(i).Width = *
  28. Shape2(i).Height = *
  29. Next
  30.  
  31. Call ShowShape(False)
  32. End Sub
  33.  
  34. Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  35. 'drag the rect
  36. If Button = vbLeftButton And EndDraw = True Then
  37. If X > Shape1.Left And X < (Shape1.Left + Shape1.Width) And _
  38. Y > Shape1.Top And Y < (Shape1.Top + Shape1.Height) Then
  39. OnDrag = True
  40. Me.MousePointer = vbSizeAll
  41. DragX = X
  42. DragY = Y
  43. Exit Sub
  44. End If
  45. End If
  46.  
  47. 'draw the rect
  48. If Button = vbLeftButton And OnDraw = False Then
  49. Me.MousePointer = vbCrosshair
  50. LocalX = X
  51. LocalY = Y
  52. Shape1.Left = X
  53. Shape1.Top = Y
  54. Shape1.Width = *
  55. Shape1.Height = *
  56. Call MoveShape
  57. Call ShowShape(False)
  58. OnDraw = True
  59. End If
  60. End Sub
  61.  
  62. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  63. 'drag the rect
  64. If Button = vbLeftButton And OnDrag = True Then
  65. Shape1.Left = LocalX - (DragX - X)
  66. Shape1.Top = LocalY - (DragY - Y)
  67. Call MoveShape
  68. Exit Sub
  69. End If
  70.  
  71. If Button = vbLeftButton And OnDraw = True Then
  72. If X > LocalX Then
  73. Shape1.Width = X - LocalX
  74. Else
  75. Shape1.Width = LocalX - X
  76. Shape1.Left = LocalX - Shape1.Width
  77. End If
  78.  
  79. If Y > LocalY Then
  80. Shape1.Height = Y - LocalY
  81. Else
  82. Shape1.Height = LocalY - Y
  83. Shape1.Top = LocalY - Shape1.Height
  84. End If
  85.  
  86. Call MoveShape
  87. Call ShowShape(True)
  88. End If
  89. End Sub
  90.  
  91. Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
  92. If Button = vbLeftButton Then
  93. If OnDrag = True Then
  94. OnDrag = False
  95. LocalX = Shape1.Left
  96. LocalY = Shape1.Top
  97. End If
  98. Me.MousePointer = vbDefault
  99. Call DrawShape
  100. OnDraw = False
  101. EndDraw = True
  102. ElseIf Button = vbRightButton Then
  103. 'RESET
  104. Call ShowShape(False)
  105. OnDraw = False
  106. OnDrag = False
  107. EndDraw = False
  108. End If
  109. End Sub
  110.  
  111. Private Sub MoveShape()
  112. Shape2().Left = Shape1.Left
  113. Shape2().Top = Shape1.Top
  114.  
  115. Shape2().Left = Shape1.Left + Shape1.Width / - ( * ) /
  116. Shape2().Top = Shape1.Top
  117.  
  118. Shape2().Left = Shape1.Left + Shape1.Width - ( * )
  119. Shape2().Top = Shape1.Top
  120.  
  121. Shape2().Left = Shape1.Left + Shape1.Width - ( * )
  122. Shape2().Top = Shape1.Top + Shape1.Height / - ( * ) /
  123.  
  124. Shape2().Left = Shape1.Left + Shape1.Width - ( * )
  125. Shape2().Top = Shape1.Top + Shape1.Height - ( * )
  126.  
  127. Shape2().Left = Shape1.Left + Shape1.Width / - ( * ) /
  128. Shape2().Top = Shape1.Top + Shape1.Height - ( * )
  129.  
  130. Shape2().Left = Shape1.Left
  131. Shape2().Top = Shape1.Top + Shape1.Height - ( * )
  132.  
  133. Shape2().Left = Shape1.Left
  134. Shape2().Top = Shape1.Top + Shape1.Height / - ( * ) /
  135. End Sub
  136.  
  137. Private Sub ShowShape(ByVal bool As Boolean)
  138. Shape1.Visible = bool
  139. For i = To
  140. Shape2(i).Visible = bool
  141. Next
  142. DoEvents
  143. End Sub
  144.  
  145. Private Sub DrawShape()
  146. Call ShowShape(False)
  147. Call Picture1.Cls
  148. Call BitBlt(Picture1.hDC, &, &, Shape1.Width / , Shape1.Height / , Me.hDC, Shape1.Left / , Shape1.Top / , vbSrcCopy)
  149. Call ShowShape(True)
  150. End Sub

贴张图:

VB6之截图的更多相关文章

  1. [置顶] VB6基本数据库应用(三):连接数据库与SQL语句的Select语句初步

    同系列的第三篇,上一篇在:http://blog.csdn.net/jiluoxingren/article/details/9455721 连接数据库与SQL语句的Select语句初步 ”前文再续, ...

  2. vb6 控件未注册问题解决

    打开项目时弹出如题错误. 另附一个帖子:http://bbs.csdn.net/topics/390580540,这个帖子讨论的不错,可以提供很多思路. 解决办法:http://rewwensoftw ...

  3. VS2010 开发 VB6.0 activeX控件 dll

    项目源码 https://download.csdn.net/download/csdn_z_s/10427764 开发环境 操作系统: win7 64位 旗舰版 Java语言开发环境:  Eclip ...

  4. 解决VB6.0中不能加载MSCOMCTL.OCX的错误提示

    VB6.0毕竟是很古老的开发工具了,其对所使用的第三方组件依赖性比较强,例如在打开从其它电脑上拿来的VB6.0的软件(系统)的工程文件(源代码)时,经常会遇到"不能加载MSCOMCTL.OC ...

  5. 通过adb方式给安卓手机截图的cmd批处理文件

    @echo off rem  通过adb方式截图rem  需要安装adb ,一般安装了android sdk 默认带了adb ,路径为sdk目录的android-sdk\platform-toolsr ...

  6. canvas与html5实现视频截图功能

    这段时间一直在研究canvas,突发奇想想做一个可以截屏视频的功能,然后把图片拉去做表情包,哈哈哈哈哈哈~~ 制作方法: 1.在页面中加载视频 在使用canvas制作这个截图功能时,首先必须保证页面上 ...

  7. 记:MySQL 5.7.3.0 安装 全程截图

    前言: 下一个班快讲MySQL数据库了,正好把服务器里面的MySQL卸了重装了一下. 截个图,作为笔记.也正好留给需要的朋友们. 目录: 下载软件 运行安装程序 安装程序欢迎界面 许可协议 查找更新 ...

  8. Atitit onvif 协议截图 getSnapshotUri 使用java

    Atitit onvif 协议截图 getSnapshotUri 使用java 1.1. ONVIF Device Test Tool1 1.2. 源码2 1.3. 直接浏览器访问http://192 ...

  9. 在Ubuntu|CentOS上安装Shutter截图工具及快捷键设置

    简介 Shutter前身叫GScrot,它是一款相当棒的截图软件. 通过Shutter,你可以截取包括选定区域.全屏幕.窗口.窗口内的控件甚至网页的图像.通过内置的强大插件机制,你可以在截图后,对图像 ...

随机推荐

  1. 开涛spring3(9.2) - Spring的事务 之 9.2 数据库事务概述

    9.2.1  概述 Spring框架支持事务管理的核心是事务管理器抽象,对于不同的数据访问框架(如Hibernate)通过实现策略接口 PlatformTransactionManager,从而能支持 ...

  2. sar使用

    http://88fly.blog.163.com/blog/static/1226803902012514710581/

  3. qrcode生成二维码插件

    今天我要和大家分享的是利用qrcode来生成二维码. 首先要使用qrcode就需要引用文件,我这边用的是1.7.2版本的jquery加上qrcode <script type="tex ...

  4. Spring Boot的properties配置文件读取

    我在自己写点东西玩的时候需要读配置文件,又不想引包,于是打算扣点Spring Boot读取配置文件的代码出来,当然只是读配置文件没必要这么麻烦,不过反正闲着也是闲着,扣着玩了.具体启动过程以前的博客写 ...

  5. 隐马尔科夫模型HMM(一)HMM模型

    隐马尔科夫模型HMM(一)HMM模型基础 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数(TODO) 隐马尔科夫模型HMM(四)维特比 ...

  6. ASP.NET MVC5(二):控制器、视图与模型

    前言 本篇博文主要介绍ASP.NET MVC中的三个核心元素:控制器.视图与模型,以下思维导图描述了本文的主要内容. 控制器 控制器简介 在介绍控制器之前,简单的介绍一下MVC工作原理:URL告知路由 ...

  7. Java基本之数据类型

    一.创建一个简单的Java应用程序 public class Code { public static void main(String[]args) { System.out.println(&qu ...

  8. Ajax 异步上传文件

    需要引用js jquery.form 前端代码 <form action="/Save" id="mainForm" method="post& ...

  9. mac中使用 sourcetree 的快速配置和git服务器登录

    问题: 1.mac中下载sourcetree配置仓库地址,一直在提示输入密码,无法登录成功,更无法获取源码. 2.找不到配置仓库时的账号密码,只看到地址. 场景: git服务器:自己的GIT服务器,非 ...

  10. Mac下安装MySQL、Workbench以及建数据库建表最基础操作

    刚用上Mac,什么都不懂,加之以前还没有用过mysql,就想着在Mac上装一个mysql来自己玩,奈何,在网上找了大半天,没有一个干货!愤怒!下面是我安装的过程,希望能帮到和我情况差不多的朋友   首 ...