begin process at 2012 02 13 08:44:42
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > FENÊTRES TRANSPARENTES W2K+

FENÊTRES TRANSPARENTES W2K+


 Information sur la source

Note :
10 / 10 - par 2 personnes
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :API Niveau :Débutant Date de création :30/03/2002 Date de mise à jour :30/03/2002 21:58:24 Vu :4 736

Auteur : mWaAtR

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Fonction permettant de rendre une fenêtre transparente.
Malheureusement cet API n'est disponible que sur Windows 2000 et plus mais le résultat est là.
Il est même possible d'appliquer cette fonction sur la barre de tâche ou une fenêtre externe à votre application à l'aide de l'API FindWindowEx...

Source

  • 'Fonctionne uniquement sur Windows 2000 et plus
  • 'Utilisation :
  • 'Dans l'événement Form_Load mettre :
  • 'WndSetOpacity hWnd, , 125 (rend la fenêtre translucide à 50%
  • 'WndSetOpacity hWnd, vbBlack, ,False (rend la couleur noir transparente)
  • 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 Function WndSetOpacity(ByVal hWnd As Long, Optional ByVal crKey As Long = vbBlack, Optional ByVal Alpha As Byte = 255, Optional ByVal ByAlpha As Boolean = True) As Boolean
  • 'Return : True si il n'y a pas eu d'erreur.
  • 'hWnd : hWnd de la fenêtre à rendre transparente
  • 'crKey : Couleur à rendre transparente si ByAlpha=False (utiliser soit les constantes vb:vbWhite ou en hexa:&HFFFFFF)
  • 'Alpha : 0-255 0=transparent 255=Opaque si ByAlpha=true (défaut)
  • Dim ExStyle As Long
  • ExStyle = GetWindowLong(hWnd, GWL_EXSTYLE)
  • If ExStyle <> (ExStyle Or WS_EX_LAYERED) Then
  • ExStyle = (ExStyle Or WS_EX_LAYERED)
  • Call SetWindowLong(hWnd, GWL_EXSTYLE, ExStyle)
  • End If
  • WndSetOpacity = (SetLayeredWindowAttributes(hWnd, crKey, Alpha, IIf(ByAlpha, LWA_ALPHA, LWA_COLORKEY)) <> 0)
  • End Function
'Fonctionne uniquement sur Windows 2000 et plus

'Utilisation :
'Dans l'événement Form_Load mettre :
'WndSetOpacity hWnd, , 125 (rend la fenêtre translucide à 50%
'WndSetOpacity hWnd, vbBlack, ,False (rend la couleur noir transparente)


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 Function WndSetOpacity(ByVal hWnd As Long, Optional ByVal crKey As Long = vbBlack, Optional ByVal Alpha As Byte = 255, Optional ByVal ByAlpha As Boolean = True) As Boolean
'Return : True si il n'y a pas eu d'erreur.
'hWnd  : hWnd de la fenêtre à rendre transparente
'crKey : Couleur à rendre transparente si ByAlpha=False (utiliser soit les constantes vb:vbWhite ou en hexa:&HFFFFFF)
'Alpha : 0-255 0=transparent 255=Opaque si ByAlpha=true (défaut)
  Dim ExStyle As Long
  ExStyle = GetWindowLong(hWnd, GWL_EXSTYLE)
  If ExStyle <> (ExStyle Or WS_EX_LAYERED) Then
    ExStyle = (ExStyle Or WS_EX_LAYERED)
    Call SetWindowLong(hWnd, GWL_EXSTYLE, ExStyle)
  End If
  WndSetOpacity = (SetLayeredWindowAttributes(hWnd, crKey, Alpha, IIf(ByAlpha, LWA_ALPHA, LWA_COLORKEY)) <> 0)
End Function
    

 Conclusion

Je n'aurait pas penser à utiliser cet API sans la question de Clem dans le forum...    


 Sources du même auteur

Source avec Zip CONNECTION VPN - MODEM AVEC L'API RASDIAL
Source avec Zip COMMUNICATION ENTRE APPLICATIONS (DCOM)
Source avec Zip Source avec une capture MTM PICTURE NAVIGATOR
VARIABLES D'ENVIRONNEMENTS
Source avec Zip SUBCLASSCONTROL

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) .NET DEPENDENCY VIEWER : ARBRE DES DÉPENDANCES D'UN ASSEMBLY... par ShareVB
Source avec Zip Source .NET (Dotnet) UTILITAIRE SKYDRIVE par MasterShadows
Source avec Zip ROTATION RAPIDE D'IMAGE par trex70
Source avec Zip Source avec une capture ENUMERATION DES PORTS TCP ET IDENTIFCATION DU PROCESS (PID) ... par Renfield
Source avec Zip Source avec une capture MOUSE SPEED AND WEIGHT : RETOUR DE FORCE VIRTUEL ! par ScSami

Commentaires et avis

Commentaire de Ricpperso le 31/03/2002 00:25:49

YAHHOUUUU,( non je nne fais pas la pub)
Super marrant ce truc mais c'a releve plutôt du gadget, mais c'est génial.
Rich@rd

Commentaire de max12 le 31/03/2002 00:42:12 administrateur CS

Wouais vraiment cool, mais c'est domage que sa marhce pas sur toute les version de windaube.

A++

Commentaire de Franck67 le 31/03/2002 11:26:14

Ouahooooooooo   Super cool, je cherche à faire depuis un moment !!
Dommage pour ceux qui n'ont pas un Win 2000 ou plus !!! hihihi

Commentaire de intello2001 le 29/06/2002 12:01:41

C FORT !

Commentaire de intello2001 le 29/06/2002 12:01:57

10 !

Commentaire de programadorvb6 le 26/09/2006 17:38:59

le version á testé á win98 ?

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales