[VB6] Rendre une forme transparente

Dernière mise à jour le 13 novembre 2009 à 15:41 par marlalapocket
Publié par lermite222



Introduction


Cette astuce explique comment se servir de la transparence..
  • Sur l'ensemble de la forme, contrôles constituants compris, suivant un ratio
  • Le fond de la forme invisible et les contrôles constituants suivant un ratio

Restriction


Ne fonctionne pas sur des couleurs avec signe négatif
Il faut mettre une couleur de la palette

Dans un module


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 bDefaut As Byte, ByVal dwFlags As Long) As Long

Private Const GWL_EXSTYLE       As Long = (-20)
Private Const LWA_COLORKEY      As Long = &H1
Private Const LWA_Defaut         As Long = &H2
Private Const WS_EX_LAYERED     As Long = &H80000

'
Public Function Transparence(ByVal hWnd As Long, Optional ByVal Coul As Long = vbBlack, _
    Optional ByVal PcTransp As Byte = 255, Optional ByVal TrMode As Boolean = True) As Boolean
' Retourne : True s'il n'y a pas eu d'erreur.
' hWnd   : hWnd de la fenêtre à rendre transparente
' Coul : Couleur à rendre transparente si TrMode=False
' PcTransp  : 0 à 255 >> 0 = transparent  -:- 255 = Opaque
Dim VoirStyle As Long
    On Error GoTo Sortie
    VoirStyle = GetWindowLong(hWnd, GWL_EXSTYLE)
    If VoirStyle <> (VoirStyle Or WS_EX_LAYERED) Then
        VoirStyle = (VoirStyle Or WS_EX_LAYERED)
        Call SetWindowLong(hWnd, GWL_EXSTYLE, VoirStyle)
    End If
    Transparence = (SetLayeredWindowAttributes(hWnd, Coul, PcTransp, IIf(TrMode, LWA_COLORKEY Or LWA_Defaut, LWA_COLORKEY)) <> 0)
    
Sortie:
    If Not Err.Number = 0 Then Err.Clear
End Function

Public Sub ActiveTransparence(M As Form, d As Boolean, F As Boolean, _
     T_Transparence As Integer, Optional Couleur As Long)
Dim B As Boolean
        If d And F Then
        'Rend la couleur (ici la couleur du fond de la forme) transparente
        'au taux de T_Transparence
            B = Transparence(M.hWnd, Couleur, T_Transparence, False)
        ElseIf d Then
            'Rend toute la forme, y compris les composants, transparente
            'au taux de T_Transparence
            B = Transparence(M.hWnd, 0, T_Transparence, True)
        Else
            'Restaure la forme opaque.
            B = Transparence(M.hWnd, , 255, True)
        End If
End Sub

Exemple dans une forme


Private Sub Form_Load()
Dim i As Integer
    'Ex: tout transparent à 140/255ème
    'ActiveTransparence Me, True, False, 140, Me.BackColor
    'Ex: Forme transparent, composant visible à 140/255ème
    'ActiveTransparence Me, True, True, 140, Me.BackColor
    
    'Exemple d'affichage de la forme par gradation de la transparence
    ActiveTransparence Me, True, False, 0
    Me.Show
    For i = 0 To 255 Step 3
        ActiveTransparence Me, True, False, i
        Me.Refresh
    Next i
End Sub
Meilleures réponses pour « Rendre une forme transparente » dans :
Choisir une image et savoir l’optimiser pour son site pro VoirChoisir une image et savoir l’optimiser pour son site professionnel Pour rendre un affichage optimal des images de votre site Internet professionnel, le choix du format doit être impérativement réalisé en fonction de son utilisation. Choisir...
[Audio] Conversion d'un fichier au format WMA en MP3 VoirPour convertir un fichier audio au format WMA en MP3, il suffit d'utiliser un logiciel de conversion tel que l'un des suivants : Free Mp3 Wma Converter dBpower-AMP Music Converter (DMC) MediaCoder GX::Transcoder Par ailleurs, il est à...
Télécharger HP USB Disk Storage Format Tool VoirHP USB Disk Storage Format Tool est tout simplement un petit utilitaire de formatage de support USB ou un lecteur MP4. Le programme permet aussi de créer des clés amorçables ( bootable ). Ce logiciel fonctionne avec toutes les clés et lecteurs MP4...
Télécharger Format Factory VoirFormat Factory est un logiciel qui permet la conversion de plusieurs types de fichiers multimédia. Les caractéristiques de Format Factory: 1 Convertir les formats vidéo, audio et image les plus populaires. 2 Réparer les fichiers endommagés. 3...
Le format PNG VoirLe format PNG Le format PNG (Portable Network Graphics, ou format Ping) est un format de fichier graphique bitmap (raster). Il a été mis au point en 1995 afin de fournir une alternative libre au format GIF, format propriétaire dont les droits sont...
Les formulaires HTML VoirIntérêt d'un formulaire Les formulaires interactifs permettent aux auteurs de pages Web de doter leur page web d'éléments interactifs permettant par exemple un dialogue avec les internaute, à la manière des coupons-réponse présents dans certains...
Formatage - Formater un disque dur VoirAvant de vouloir comprendre ce qu'est le formatage, il est essentiel de connaître le fonctionnement d'un disque dur. Beaucoup de personne ne distinguent pas le formatage de bas niveau (appelé aussi formatage physique) et le formatage de haut...
Collection CommentÇaMarche.net