Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - trasparenza rich text box
Forum - Visual Basic 6 - trasparenza rich text box

Avatar
ditta_francesca@alice.it (Normal User)
Newbie


Messaggi: 1
Iscritto: 18/06/2008

Segnala al moderatore
Postato alle 9:59
Mercoledì, 18/06/2008
BUONGIORNO A TUTTI!!
sto utilizzando vb 6,
dovrei impostare la trasparenza come background di una rich text box e dei comandi button..ma nn sono in grado..
qualcuno mi potrebbe dare una mano..?? grazie in anticipo

PM Quote
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 12:10
Mercoledì, 18/06/2008
Non so se sia possibile anche io c'ho provato ma penso che non si possa fare, solo il form può diventare trasparente....

PM Quote
Avatar
Louis (Normal User)
Pro


Messaggi: 150
Iscritto: 22/04/2008

Segnala al moderatore
Postato alle 14:57
Mercoledì, 18/06/2008
Per il controllo RTB - ed altri - puoi usare il seguente codice, mentre per il CmdButton penso che non si possa ottenere la trasparenza:
Codice sorgente - presumibilmente VB.NET

  1. 'Il colore iniziale di sfondo dei controlli,
  2. 'per ottenere la trasparenza, deve essere bianco:
  3.  
  4. Const LWA_COLORKEY = &H1
  5. Const LWA_ALPHA = &H2
  6. Const GWL_EXSTYLE = (-20)
  7. Const WS_EX_LAYERED = &H80000
  8. Private Declare Function GetWindowLong Lib "user32" Alias _
  9.     "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
  10. Private Declare Function SetWindowLong Lib "user32" Alias _
  11.     "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  12. Private Declare Function SetLayeredWindowAttributes Lib _
  13.     "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, _
  14.     ByVal dwFlags As Long) As Long
  15. ' -----------------------------------------------------------
  16. Private Sub Form_Load()
  17.    
  18.     RichTextBox1.BackColor = &H80000005
  19.     Dim Ret As Long
  20.    
  21.     Ret = GetWindowLong(Me.hWnd, GWL_EXSTYLE)
  22.     Ret = Ret Or WS_EX_LAYERED
  23.     SetWindowLong Me.hWnd, GWL_EXSTYLE, Ret
  24.     SetLayeredWindowAttributes Me.hWnd, 0, 128, LWA_ALPHA
  25.     SetLayeredWindowAttributes Form1.hWnd, &HFFFFFF, 0, LWA_COLORKEY
  26. End Sub


:k:

Ultima modifica effettuata da Louis il 18/06/2008 alle 14:59
PM Quote
Avatar
chen (Normal User)
Rookie


Messaggi: 54
Iscritto: 27/04/2008

Segnala al moderatore
Postato alle 15:59
Mercoledì, 18/06/2008
Louis il codice da te postato funziona anche con i commandbutton basta che  scegli alla proprietà backcolor del command il colore bianco e anche la sua proprietà style a 1(graphical), pero come ho capito il codice da te postato rende trasparente qualsiasi cosa che abbia il colore bianco nel form:k::k:anche se metti uno sfondo bianco al form:k::k:

Ultima modifica effettuata da chen il 18/06/2008 alle 16:00
PM Quote
Avatar
Louis (Normal User)
Pro


Messaggi: 150
Iscritto: 22/04/2008

Segnala al moderatore
Postato alle 8:39
Giovedì, 19/06/2008
chen è così; non credo comunque che sia un errore ma semplicemente una limitazione, peraltro facilmente superabile conferendo alla Frm ed agli altri controlli una sfumatura di grigio e lasciando lo sfondo bianco al solo/soli controllo che si vuole rendere trasparente.
Con qualche prova, poi, si potrebbe personalizzare il codice mirando al solo controllo da rendere trasparente.

:)

PM Quote