Feuille translucide

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

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.