调用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 '逐行扫描