现有一个自定义控件,这个自定义控件里有个picturebox控件。
设置自定义控件为透明,这样将该控件拖放到form1上时,可以发现这个自定义控件是透明的。
但是当我将picturebox 切割一个角(比如右上角)之后,被切割的那部分自定义控件的背景不是透明的了。显示出自定义控件的背景色。
请问怎么让被切割的部分也是透明的啊?麻烦会的朋友帮我一下。谢谢了。相关代码:
Private Type POINTAPI
x As Long
y As Long
End Type Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As Any, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Longap(0).x = 0: ap(0).y = 0
ap(1).x = 51: ap(1).y = 0
ap(2).x = 85: ap(2).y = 15
ap(3).x = 0: ap(3).y = 594
ap(4) = ap(0)reRgn = CreatePolygonRgn(ap(0).x, 5, 1) '梯形
SetWindowRgn Picture1.hWnd, reRgn, True '设置picture为指定的形状
设置自定义控件为透明,这样将该控件拖放到form1上时,可以发现这个自定义控件是透明的。
但是当我将picturebox 切割一个角(比如右上角)之后,被切割的那部分自定义控件的背景不是透明的了。显示出自定义控件的背景色。
请问怎么让被切割的部分也是透明的啊?麻烦会的朋友帮我一下。谢谢了。相关代码:
Private Type POINTAPI
x As Long
y As Long
End Type Private Declare Function CreatePolygonRgn Lib "gdi32" (lpPoint As Any, ByVal nCount As Long, ByVal nPolyFillMode As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Longap(0).x = 0: ap(0).y = 0
ap(1).x = 51: ap(1).y = 0
ap(2).x = 85: ap(2).y = 15
ap(3).x = 0: ap(3).y = 594
ap(4) = ap(0)reRgn = CreatePolygonRgn(ap(0).x, 5, 1) '梯形
SetWindowRgn Picture1.hWnd, reRgn, True '设置picture为指定的形状
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货