Per rendere trasparente il controllo Pic (ed altri) si può utilizzare le seguenti funzioni, con l'accortezza che il colore di sfondo dei controlli sia necessariamente bianco, come segue:
codice:Option Explicit 'Il colore iniziale di sfondo dei controlli, 'per ottenere la trasparenza, deve essere bianco: Const LWA_COLORKEY = &H1 Const LWA_ALPHA = &H2 Const GWL_EXSTYLE = (-20) 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 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 Form_Load() Frame1.BackColor = &HFFFFFF 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, 0, 128, LWA_ALPHA SetLayeredWindowAttributes Form1.hWnd, &HFFFFFF, 0, LWA_COLORKEY End Sub

Rispondi quotando