vb用鼠标实现屏幕绘图

该代码示例展示了如何使用VB创建一个接近完全透明的置顶窗口,并通过鼠标实现屏幕绘图,避免了传统屏幕抓图方法带来的闪烁问题。用户可以使用Ctrl+B开始绘图,Ctrl+E停止,Ctrl+Q结束程序。
摘要由CSDN通过智能技术生成

一般说来,在屏幕上绘图,许多朋友首先想到的是先抓取屏幕图形到窗口,然后在窗口中进行绘图,这种思路最大的缺点是,当窗口切换时,会出现明显的闪烁现象(因为屏幕抓图和应用程序窗口再置顶这些操作比较费时),有没有更好的解决办法,从而实现更快捷的屏幕绘图呢?

其实,既然窗口支持半透明,为什么不利用此特点,创建一个置顶的接近完全透明的窗口,然后再在此窗口内绘图呢?为此,我写下了这个代码,经测试,基本达到了设计目的:

代码如下:

Option Explicit

'* ************************************************************** *
'*    程序名称:modDrawInScreen.bas
'*    程序功能:用鼠标实现屏幕绘图
'*    程序用法:按Ctrol+B开始绘图、Ctrl+E停止绘图、Ctrl+Q结束
'*    作者:lyserver
'*    联系方式:http://blog.csdn.net/lyserver
'* ************************************************************** *
Private Declare Function RegisterClass Lib "user32" Alias "RegisterClassA" (Class As WNDCLASS) As Long
Private Declare Function UnregisterClass Lib "user32" Alias "UnregisterClassA" (ByVal lpClassName As String, ByVal hInstance As Long) As Long
Private Const CS_HREDRAW = &H2
Private Const CS_VREDRAW = &H1
Private Const COLOR_WINDOW = 5
Private Type WNDCLASS
    style As Long
    lpfnwndproc As Long
    cbClsextra As Long
    cbWndExtra2 As Long
    hInstance As Long
    hIcon As Long
   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值