Feuille transparente

Soyez le premier à donner votre avis sur cette source.

Vue 4 411 fois - Téléchargée 537 fois

Description

Ce code permet de render une feuille transparente , de ne voir que les controls.

Source / Exemple :


Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Function TransForm() As Boolean
On Error Resume Next
Call keybd_event(vbKeySnapshot, 1, 0, 0)
Me.PaintPicture Clipboard.GetData(vbCFBitmap), -Me.Left, -Me.Top
End Function

Private Sub Form_Activate()
TransForm // pour lancer le code
End Sub

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015

Merci mimiZanzan pour ton code, il fonctionne à la perfection ^^
Messages postés
332
Date d'inscription
lundi 29 septembre 2008
Statut
Membre
Dernière intervention
10 avril 2020
1
tout il est beau ici !
Messages postés
301
Date d'inscription
lundi 27 février 2006
Statut
Membre
Dernière intervention
17 décembre 2017

Je ne sais pas si c'est toujours d'actualité, mais il y existe un code extrêmement simple pour arriver à une form transparente en VB6, et qui marche à tous les coups.
Dans une form, ajouter un bouton Command1 de caption "Exit" par ex et copier ce code:

'Déclarations constantes API
Const LWA_COLORKEY = &H1
Const LWA_ALPHA = &H2
Const GWL_EXSTYLE = (-20)
Const WS_EX_LAYERED = &H80000
'Fonctions API
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 Sub Command1_Click()
Unload Me
End Sub
'
Private Sub Form_Load()
Me.BackColor = RGB(255, 0, 255)
Dim Ret As Long
Ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
Ret = Ret Or WS_EX_LAYERED
SetWindowLong Me.hWnd, GWL_EXSTYLE, Ret
SetLayeredWindowAttributes Me.hWnd, Me.BackColor, 0, LWA_COLORKEY
End Sub

Private Sub Form_Resize()
Command1.Left = (Me.Width - Command1.Width) / 2
Command1.Top = Me.ScaleHeight - Command1.Height - 50
End Sub

Je ne sais plus en fait où j'ai trouvé ce code ou s'il est de moi...

A toutes fins utiles...
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015

3/10 ^^
Messages postés
855
Date d'inscription
samedi 11 juin 2005
Statut
Membre
Dernière intervention
21 août 2015

lol ca marche une fois sur 5 :p
play - stop - play - stop - play - stop - play - stop

Bon ben bah... 3/10 ?
Afficher les 13 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.