Rend transparent n'importe qu'elle fenêtre dans windows 2000 et xp

Description

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

Codes Sources

A voir également

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.