Feuille translucide

0/5 (6 avis)

Snippet vu 5 670 fois - Téléchargée 72 fois

Contenu du snippet

Mettez le code dans votre form et si vous en avez plusieur ben remplace les private par Global et mettez so dans un module

'Prend po en charge les déplacement par barre de titre original

Source / Exemple :


Option Explicit
Private Declare Function ReleaseDC Lib "USER32" (ByVal hWnd As Long, ByVal hdc As Long) As Long
Private Declare Function GetDC Lib "USER32" (ByVal hWnd As Long) As Long
Private Declare Function GetDesktopWindow Lib "USER32" () As Long
Private Declare Function BitBlt Lib "GDI32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Const SRCCOPY = &HCC0020
Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Dim iRecursion As Boolean
Dim tColor As Long
Public Sub MakeTranslucent(Who As Form, Optional tColor As Long)
On Local Error Resume Next
Dim HW As Long
Dim HA As Long
Dim iLeft As Integer
Dim iTop As Integer
Dim iWidth As Integer
Dim iHeight As Integer
If IsMissing(tColor) Or tColor = 0 Then
    tColor = RGB(0, 0, 200)
End If
Who.AutoRedraw = True
Who.Hide
DoEvents
HW = GetDesktopWindow()
HA = GetDC(HW)
iLeft = Who.Left / Screen.TwipsPerPixelX
iTop = Who.Top / Screen.TwipsPerPixelY '+ 25    If using a form with a titlebar (border)...
iWidth = Who.ScaleWidth
iHeight = Who.ScaleHeight
Call BitBlt(Who.hdc, 0, 0, iWidth, iHeight, HA, iLeft, iTop, SRCCOPY) 'iLeft + 4    If using a form with a titlebar (border)...
Who.Picture = Who.Image
Who.Show
Call ReleaseDC(HW, HA)
Who.DrawMode = 9
Who.ForeColor = tColor
Who.Line (0, 0)-(iWidth, iHeight), , BF
End Sub

Private Sub Command1_Click()
Call MakeTranslucent(Me, vbRed)
End Sub

Conclusion :


Pour exécuter

Form_load
call MakeTranslucent(me,vbred)'Couleur changeable
end sub

A voir également

Ajouter un commentaire Commentaires
huugooo
Messages postés
122
Date d'inscription
mercredi 25 février 2004
Statut
Membre
Dernière intervention
2 juillet 2014

26 févr. 2004 à 22:29
Pas mal =)
cs_Matt
Messages postés
34
Date d'inscription
lundi 17 décembre 2001
Statut
Membre
Dernière intervention
29 novembre 2005

3 juin 2002 à 10:56
Ca marche sur vb 5.0 je l'ai testé! Ce qui est dommage c'est quand on bouge la feuille elle laisse l'image précédente...
Gorgot
Messages postés
95
Date d'inscription
lundi 28 janvier 2002
Statut
Membre
Dernière intervention
21 février 2008

7 avril 2002 à 00:47
Merci ça a donné exactement ce que je voulais meme si le code est pas supposer faire ca :D
J'aurais tu oublier quelque chose, si c'est le cas je vais arranger sa
salutil manque pour exécuter ton code la commande call devant: call MakeTranslucent(me,rgb(255,0,0)) et rajoute une parantèse à la fin!

merci et de rien! :)
Afficher les 6 commentaires

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.