vb 6 listview的背景透明的实现

在VB6中实现ListView背景透明是一个挑战。经过一个多月的研究和Google搜索未果,最终找到了解决方案。通过Hook ListView的WinProc函数并自定义处理消息,可以实现背景透明。具体实现包括捕获WM_ERASEBKGND消息,使用BitBlt函数进行位图复制,并结合窗口矩形调整坐标,从而达到透明效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

研究这个问题已经有一个多月了,google个n天,都没人解决,始终没有找到好的方法,我是vb小弱阿。最后还是们组的老大高,找到了一个方法。决定不私藏: 

首先:当然是hook listview的winProc函数如下

 Public Function LVSubcls_WProc4Hdr(ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    On Error Resume Next

    Dim UpdateRect As RECT
    Dim hRgn As Long
    Dim re As Long
    Dim ps As PAINTSTRUCT
    Dim hdc As Long
    Dim hP1Dc As Long
    Dim hMemDc As Long
    Dim hBitmap As Long
    Dim itemHeight As Long

    
    Dim lvRect As RECT, imageRect As RECT, lvWinRect As RECT, imageWinRect As RECT
    GetClientRect hwnd, lvRect
    GetClientRect sourceImagehwnd, imageRect
          
&nbs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值