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 PictureBox
Forum - Visual Basic 6 - Trasparenza PictureBox

Avatar
dedo93 (Normal User)
Newbie


Messaggi: 8
Iscritto: 03/01/2011

Segnala al moderatore
Postato alle 5:39
Lunedì, 03/01/2011
Ciao a tutti,
sono nuovo qui.. iscritto apposta per cercare una soluzione a questo problema.
Ho una picturebox che carica un pezzo (32x64) di un immagine molto più grande (384x5440). Questa seconda immagine ha lo sfondo RGB(255,0,255) e nel momento in cui vado a prenderne il piccolo pezzo che mi serve dovrei toglierlo e renderlo trasparente.
Il codice che sto attualmente usando è questo:

Codice sorgente - presumibilmente VB.NET

  1. Public Const CAPS1 = 94
  2. Public Const C1_TRANSPARENT = &H1
  3. Public Const NEWTRANSPARENT = 3
  4. Dim dColor As Long
  5. Dim dMode As Long
  6.     If (GetDeviceCaps(picPic.hdc, CAPS1) And C1_TRANSPARENT) Then
  7.         dMode = SetBkMode(picPic.hdc, NEWTRANSPARENT)
  8.         dColor = SetBkColor(picPic.hdc, RGB(255, 0, 255))
  9.        
  10.             picSprites.Left = 128 * -1
  11.             picSprites.top = 128* -1
  12.             Call BitBlt(picPic.hdc, 0, 0, 32, 64, picSprites.hdc, 128, 128, vbSrcCopy)
  13.        
  14.         SetBkColor picPic.hdc, dColor
  15.         SetBkMode picPic.hdc, dMode
  16.     Else
  17.         MsgBox "Your graphic drivers does not support transparency.", vbCritical
  18.         Call GameDestroy
  19.     End If



Non riesco proprio a venirne fuori, ho già provato TransparentBlt ma non riesco ad ottenere risultati buoni...
Grazie a tutti in anticipo

PM Quote
Avatar
alexbluecolor (Normal User)
Newbie


Messaggi: 1
Iscritto: 04/01/2011

Segnala al moderatore
Postato alle 11:26
Martedì, 04/01/2011
Up! xD
Comunque prova a ricontrollare tutte le righe...
L'errore lo troverai sicuramente! :pat:

Saluti, Alex :asd:

Ultima modifica effettuata da alexbluecolor il 04/01/2011 alle 11:28
PM Quote