Option Explicit Private Const GWL_EXSTYLE = (-20) Private Const LWA_COLORKEY = &H1 Private Const LWA_ALPHA = &H2 Private Const WS_EX_LAYERED = &H80000 Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetLayeredWindowAttributes Lib "user32.dll" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags 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 Public Sub WndSetOpacity(ByVal hWnd As Long, Optional ByVal crKey As Long vbBlack, Optional ByVal Alpha As Byte 255, Optional ByVal byAlpha As Boolean = True) 'hWnd : hWnd de la fenêtre à rendre transparente 'crKey : Couleur à rendre transparente si ByAlpha=False 'Alpha : Transparence 0-255 0=transparent 255=Opaque si ByAlpha=true Dim ExStyle As Long ExStyle = GetWindowLong(hWnd, GWL_EXSTYLE) ExStyle = ExStyle Or WS_EX_LAYERED Call SetWindowLong(hWnd, GWL_EXSTYLE, ExStyle) SetLayeredWindowAttributes hWnd, crKey, Alpha, IIf(byAlpha, LWA_ALPHA, LWA_COLORKEY) End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question