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 - sfondo trasparente
Forum - Visual Basic 6 - sfondo trasparente

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
FREESTYLE (Normal User)
Pro


Messaggi: 65
Iscritto: 05/03/2007

Segnala al moderatore
Postato alle 19:56
Sabato, 14/04/2007
come posso fare x mettere uno sfondo trasparente o semitrasparente??

PM Quote
Avatar
c.ronaldo (Normal User)
Expert


Messaggi: 577
Iscritto: 01/02/2007

Segnala al moderatore
Postato alle 21:09
Sabato, 14/04/2007
Aggiungi un modulo contenente questo :

Codice sorgente - presumibilmente VB.NET

  1. Attribute VB_Name = "transparency"
  2. Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
  3. Private Declare Function UpdateLayeredWindow Lib "user32" (ByVal hwnd As Long, ByVal hdcDst As Long, pptDst As Any, psize As Any, ByVal hDCSrc As Long, pptSrc As Any, crKey As Long, ByVal pblend As Long, ByVal dwFlags As Long) As Long
  4. Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
  5. Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
  6. Private Const GWL_EXSTYLE = (-20)
  7. Private Const LWA_COLORKEY = &H1
  8. Private Const LWA_ALPHA = &H2
  9. Private Const ULW_COLORKEY = &H1
  10. Private Const ULW_ALPHA = &H2
  11. Private Const ULW_OPAQUE = &H4
  12. Private Const WS_EX_LAYERED = &H80000
  13.  
  14. Public Function isTransparent(ByVal hwnd As Long) As Boolean
  15. On Error Resume Next
  16.     Dim Msg As Long
  17.    
  18.     Msg = GetWindowLong(hwnd, GWL_EXSTYLE)
  19.     If (Msg And WS_EX_LAYERED) = WS_EX_LAYERED Then
  20.       isTransparent = True
  21.     Else
  22.       isTransparent = False
  23.     End If
  24.     If Err Then
  25.       isTransparent = False
  26.     End If
  27. End Function
  28.  
  29. Public Function MakeTransparent(ByVal hwnd As Long, Perc As Integer) As Long
  30. Dim Msg As Long
  31. On Error Resume Next
  32.     If Perc < 0 Or Perc > 255 Then
  33.       MakeTransparent = 1
  34.     Else
  35.       Msg = GetWindowLong(hwnd, GWL_EXSTYLE)
  36.       Msg = Msg Or WS_EX_LAYERED
  37.       SetWindowLong hwnd, GWL_EXSTYLE, Msg
  38.       SetLayeredWindowAttributes hwnd, 0, Perc, LWA_ALPHA
  39.       MakeTransparent = 0
  40.     End If
  41.     If Err Then
  42.       MakeTransparent = 2
  43.     End If
  44. End Function
  45.  
  46. Public Function MakeOpaque(ByVal hwnd As Long) As Long
  47.     Dim Msg As Long
  48.     On Error Resume Next
  49.     Msg = GetWindowLong(hwnd, GWL_EXSTYLE)
  50.     Msg = Msg And Not WS_EX_LAYERED
  51.     SetWindowLong hwnd, GWL_EXSTYLE, Msg
  52.     SetLayeredWindowAttributes hwnd, 0, 0, LWA_ALPHA
  53.     MakeOpaque = 0
  54.     If Err Then
  55.       MakeOpaque = 2
  56.     End If
  57. End Function


pOI NEL FORM METTI :
Codice sorgente - presumibilmente VB.NET

  1. Private Sub Slider1_change()
  2. inizio:
  3. 'sets transparency of main window
  4. Call MakeTransparent(Me.hwnd, Slider1.Value)
  5. SaveSetting App.EXEName, "Options", "trasparent", Slider1.Value
  6. If Slider1.Value < 100 Then
  7. a = MsgBox("The window may be too much transparent to be visible. Do you want to keep this setting anyway?", vbExclamation + vbYesNo, "Be Careful!!")
  8. If a = vbYes Then
  9. Else
  10. Slider1.Value = 255
  11. SaveSetting App.EXEName, "Options", "trasparent", Slider1.Value
  12. GoTo inizio
  13. End If
  14. End If
  15. End Sub



Ovviamente devi aggiungere lo slider chiamato Slider1!!:k::k:

Se hai problemi posta!;);)

Ultima modifica effettuata da c.ronaldo il 14/04/2007 alle 21:11
PM Quote
Avatar
FREESTYLE (Normal User)
Pro


Messaggi: 65
Iscritto: 05/03/2007

Segnala al moderatore
Postato alle 22:25
Sabato, 14/04/2007
ciao grazie 1000 x la risposta :)
lo slider dove lo prendo..?

PM Quote
Avatar
c.ronaldo (Normal User)
Expert


Messaggi: 577
Iscritto: 01/02/2007

Segnala al moderatore
Postato alle 10:56
Domenica, 15/04/2007
Nei componenti,Microsoft Windows CommonControl 6.0!;)

PM Quote
Avatar
FREESTYLE (Normal User)
Pro


Messaggi: 65
Iscritto: 05/03/2007

Segnala al moderatore
Postato alle 13:20
Domenica, 15/04/2007
nel primo rigo del modulo mi da un errore di compilazione:

http://img216.imageshack.us/img216/2933/immagineyy4.jpg

Ultima modifica effettuata da FREESTYLE il 15/04/2007 alle 13:22
PM Quote
Avatar
c.ronaldo (Normal User)
Expert


Messaggi: 577
Iscritto: 01/02/2007

Segnala al moderatore
Postato alle 13:45
Domenica, 15/04/2007
Elimina la riga!:k:;)

PM Quote
Avatar
motoboy (Ex-Member)
Pro


Messaggi: 152
Iscritto: 05/04/2007

Segnala al moderatore
Postato alle 13:58
Domenica, 15/04/2007
Testo quotato

Postato originariamente da FREESTYLE:

nel primo rigo del modulo mi da un errore di compilazione:

http://img216.imageshack.us/img216/2933/immagineyy4.jpg



E' una riga di COMMENTO;)

PM Quote
Avatar
FREESTYLE (Normal User)
Pro


Messaggi: 65
Iscritto: 05/03/2007

Segnala al moderatore
Postato alle 14:39
Domenica, 15/04/2007
ora funziona :) ma cosė rende la finestra completamente trasparente.. io vorrei solo sfondo trasparente e i vari label, immagini e textbox visibili normalmente..

PM Quote
Avatar
FREESTYLE (Normal User)
Pro


Messaggi: 65
Iscritto: 05/03/2007

Segnala al moderatore
Postato alle 13:10
Lunedė, 16/04/2007
vi faccio un esempio graficamente di come dovrebbe essere lo sfondo che dico.. (fatto con Photoshop..)

esempio 1: sfondo semi-trasparente
esempio 2: sfondo completamente trasparente

so che per eliminare i bordi e la barra del titolo basta selezionare "0 - None" in "BorderStyle".. ma non so come rendere trasparente lo sfondo invece di mettere uno sfondo o un colore o di lasciarlo grigio standard..

http://img243.imageshack.us/img243/928/esempiovbdv6.jpg

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo