Esiste un modo per fare cio'?
Boolean aveva fatto un ocx, vorrei sapere il principio di sviluppo, insomma come si fa a fare.
Se qualcuno puo' aiutarmi gli sarei davvero grato, ciao.
Esiste un modo per fare cio'?
Boolean aveva fatto un ocx, vorrei sapere il principio di sviluppo, insomma come si fa a fare.
Se qualcuno puo' aiutarmi gli sarei davvero grato, ciao.
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
LM
sperando che mi rendi trasparente solo la picturebox e non il form e altre picturebox sottostanti, lo provero' tra qualche giorno, intanto ti ringrazio per la risposta
![]()
Come ti ho segnalato, il codice rende trasparente la sola (o le sole) PictureBox che ha lo sfondo Bianco.sperando che mi renda trasparente solo la picturebox e non il form e le altre picturebox ....
Ora se vi sono più controlli Pic sovrapposti, non sò dirti quale possa essere il risultato ... Non ti rimane che provare.
Ciao.
LM
azzz...come credevo rende trasparente anche il form sotto, a me servirebbe rendere trasparente solo il backcolor, e ad esempio se ci disegnassi una linea all'interno vorrei che essa fosse visibile.
e' tutto cio' possibile?![]()
Ho capito cosa vuoi dire. Francamente un effetto del genere non l'ho mai visto, anche perchè basterebbe dare il colore di sfondo della Pic uguale a quello della Frm sottostante.
Il codice postato invece, qualora il colore di sfondo della Pic sia bianco, crea una sorta di finestra trasparente con area uguale a quella della Pic.
Ciao.
LM
la Extra Picture box di boolean aveva appunto questa funzionesolo che non ha tutte le funzioni che mi servono, quindi volevo farmi un ocx da solo.
la cosa di mettere lo stesso bg del form non va bene, senno non cercherei di renderla trasparente![]()
un'altro problema del tuo codice e' che rende trasparente qualunque cosa bianca sul form, non solo la picturebox![]()
grazie cmq dell'aiuto![]()