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

Soyez le premier à donner votre avis sur cette source.

Vue 6 973 fois - Téléchargée 744 fois

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

Ajouter un commentaire

Commentaires

bubble44
Messages postés
200
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
3 août 2004
-
C'est interessant mais ca sert a quoi ? lol.
Moi ce qui m'interesserait ca serait de rendre des MDI chirlds transparentes !.
Pourquoi ? car alors, on pourrait mettre une belle image de fond dans la MDI PARENT, et avec une legere transparence ca devrait etre beau comme tout d'apercevoir la picture de la MDI PARENT.
Voila, j'attends pas, je pense que j'aurais pas mon souhait.
;-)
cs_Urgo
Messages postés
780
Date d'inscription
lundi 16 décembre 2002
Statut
Membre
Dernière intervention
16 avril 2009
1 -
Félicitations pour ce prog !
Il marche d'enfer chez moi (XP)
Noiretulipe
Messages postés
165
Date d'inscription
mardi 21 janvier 2003
Statut
Membre
Dernière intervention
13 juillet 2008
-
ça roule vraiment bien ton machin ... Mes plus belles féloches !
cs_Cerbere
Messages postés
6
Date d'inscription
dimanche 1 décembre 2002
Statut
Membre
Dernière intervention
1 décembre 2002
-
Merci Icem@n pour la demonstration par un exemple des nouvelles fonctions ces API, ciao.
cs_max12
Messages postés
1491
Date d'inscription
dimanche 19 novembre 2000
Statut
Modérateur
Dernière intervention
7 juillet 2014
-
Sa l'air vraiment bien ton truc mais domage que sa fonctionne pas sous Windaube 98 :(

A+

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.