Option Explicit
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
Private Const LWA_COLORKEY = &H1
Private Const WS_EX_LAYERED = &H80000
Private Const GWL_EXSTYLE = (-20)
Private Const CLR_Fon = &HFF8080
Private Sub Form_Load()
SetTransparent Me.hWnd, 0, CLR_Fon
End Sub
Public Sub SetTransparent(hWnd As Long, Layered As Byte, ID_Color As Variant)
Dim Ret As Long
Ret = GetWindowLong(hWnd, GWL_EXSTYLE)
Ret = Ret Or WS_EX_LAYERED
SetWindowLong hWnd, GWL_EXSTYLE, Ret
SetLayeredWindowAttributes hWnd, ID_Color, Layered, LWA_COLORKEY
End Sub
Прозрачный PictureBox
Вообще результат которого хочу добиться выглядит так:
К примеру на форме стоит PictureBox, с изображением. Я переношу в него файл и на этом PictureBox-е появляется иконка файла... Вообщем как сделать прозрачными пиксели с указанным цветом?
Знаю только как сделать прозрачным цвет на всей форме, а не отдельно на PictureBox. Ну можно конкретно какой-о цвет использовать только для фона этого бокса.