Ce code permets de rendre presque toutes les fenêtres de windows transparente
et tout ça grace au API Windows
Downloadé la source elle contient aussi les modules :
ListeDesTaches (liste les fenêtres à l'écran)
SetWindowPos (une fenêtre toujours au premiers plan)
Shell_NotifyIcon (une icone dans la barre des taches)
SetTransparencyForm (rend une fenêtre transparente)
Source / Exemple :
' le code Principale
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 Declare Function GetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Public Const WS_EX_LAYERED = &H80000
Public Const LWA_ALPHA = &H2
Public Const GWL_EXSTYLE = (-20)
Public Sub SetTransparency(lngHwnd As Long, intAlpha As Integer, Optional boolTopMost As Boolean = False)
Dim lngWindowsStyle As Long
If intAlpha = 255 Then
lngWindowsStyle = GetWindowLong(lngHwnd, GWL_EXSTYLE) ' obtention du style
lngWindowsStyle = lngWindowsStyle And Not WS_EX_LAYERED ' retire le style desirer
SetWindowLong lngHwnd, GWL_EXSTYLE, lngWindowsStyle
If boolTopMost Then SetPremierPlan lngHwnd, HWND_NOTOPMOST
Else
lngWindowsStyle = GetWindowLong(lngHwnd, GWL_EXSTYLE) ' obtention du style
lngWindowsStyle = lngWindowsStyle Or WS_EX_LAYERED ' ajoute le style desirer
SetWindowLong lngHwnd, GWL_EXSTYLE, lngWindowsStyle
SetLayeredWindowAttributes lngHwnd, 0, intAlpha, LWA_ALPHA
If boolTopMost Then SetPremierPlan lngHwnd, HWND_TOPMOST
End If
End Sub
Conclusion :
Bug : pas de bug apparent
Certaine fenêtre ne peuvent être transparente : cmd.exe
Update 09-03-2004 :
Ajout de la sauvegarde des options : Alpha et TopMost
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.