picturebox透明背景处理

本文介绍了如何通过调用API函数SetWindowRgn并自定义PicProc函数,处理PictureBox的透明背景。通过逐像素扫描,标记非透明区域,创建不规则矩形,实现了背景透明效果。尽管在低性能设备上效率较低,但通过优化,速度得到了显著提升。
摘要由CSDN通过智能技术生成

调用API函数SetwindowRgn生成异形picturebox客户区域矩形,语句如下:

SetWindowRgn hwdCleintArea, PicProc(hdcPicturebox, LngColorB), nClientW, nClientH), True

其中:

hwdCleintArea为picturebox实例的hwd句柄(注意它与hdcPicturebox的区别。hdcPicturebox句柄为hdc,主要用于绘图)

hdcPicturebox为做背景透明处理的picturebox控件实例句柄

lngColorb为剔除区域的颜色,即需要将picturebox加载的图片准备剔除的区域填充成一种颜色。

nclientW、nclientH为picturebox的客户区域宽度和高度

 

下面是picproc函数代码:

Public Function PicProc(nClient As Long, TransparentColor As Long, lngClientW As Long, lngClientH As Long) As Long
    Dim lngX&, lngY&, lngStarX& '不规则矩形坐标
    Dim lngRgnResultHdc&, lngRgnHdc& '不规则矩形结果句柄,当前不规则矩形句柄
    Dim blnStarCreate As Boolean
   
    blnStarCreate = True '首次创建不规则矩形标志
   
    For lngY = 0 To lngClientH - 1 '逐列扫描
        For lngX = 1 To lngClientW - 1 '逐行扫描
           

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值