有两个picturebox层叠,要使得上层的picturebox透明、并可以在透明区域画图,并且看得到底层的picturebox上的图片(作为背景)。
    我试过一下代码:
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long 
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long 
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long 
Const WS_EX_LAYERED = &H80000 
Const GWL_EXSTYLE = (-20) 
Const LWA_COLORKEY = &H1 
Dim rtn& Private Sub Form_Load() 
 Picture2.BackColor = RGB(66, 66, 66) 
 rtn = GetWindowLong(hwnd, GWL_EXSTYLE) 
 rtn = rtn Or WS_EX_LAYERED 
 SetWindowLong hwnd, GWL_EXSTYLE, rtn 
 SetLayeredWindowAttributes hwnd, RGB(66, 66, 66), 0, LWA_COLORKEY 
End Sub      但是,这种方式会使得整个窗体都透明,只要是在顶层的控件是透明的,底层所有被覆盖的控件都被透过,直到桌面。
     请各位高手指点迷津,在下无比感激!