Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    Splashscreen

    C'è un modo x realizzare uno splashscreen come fanno molti programmi (esempio: photoshop...) ke sono trasparenti con oggeti ke "escono" dal form???

    GRAZIE!!!


  2. #2
    Crea un form dallo sfondo di un colore diverso da quello di tutti gli oggetti che conterrà (di solito si usa il violetto) e senza barra del titolo, quindi inseriscici in mezzo un rettangolo (puoi farlo con un controllo frame oppure in mille altri modi differenti) del colore che vuoi ma diverso da quello di sfondo del form. Ora inserisci tutti i controlli che vuoi, tenendo conto del fatto che durante l'esecuzione tutto ciò che sarà del colore di sfondo del form sarà reso trasparente.
    A questo punto inserisci nella sezione codice del form:
    codice:
    Public Function SetLayeredWindowAttributes Lib "user32" (hwnd As Long, crKey As Long, bAlpha As Byte, dwFlags As Long) As Long
    Const LWA_COLORKEY=1 
    Const LWA_ALPHA=2 'Effettivamente inutile
    Public Sub Form_Load()
    SetLayeredWindowAttributes (Me.hWnd, Me.BackColor, 255, LWA_COLORKEY)
    End Sub
    .
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Ah, dimenticavo, funziona solamente da Windows 2000 in su. Su versioni più vecchie di Windows si verifica un errore.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Stavo provando il codice ma ho visto ke mi da degli errori!!!

    Mi da errore alla prima riga del codice ke mi hai postato... eppure sembra sia tutto a posto!!!

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Originariamente inviato da Scorpion69
    Stavo provando il codice ma ho visto ke mi da degli errori!!!
    Ovvero?

  6. #6
    Originariamente inviato da oregon
    Ovvero?
    Mi da errore alla prima riga del codice!!!

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    Ma quale errore???

    Possibile che per ottenere la descrizione dell'errore ci vogliamo 3 messaggi nel forum?

  8. #8
    Mi evidenzia "Lib" e mi viene la msgbox ke mi dice

    "Errore di compilazione:
    Previsto: fine instruzione"

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    La dichiarazione e' sbagliata ... deve iniziare con

    Public Declare Function

    se la inserisci in un modulo o

    Private Declare Function

    se la inserisci in un form

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,481
    In ogni caso, il codice corretto e'

    codice:
    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 Const GWL_EXSTYLE = (-20)
    Private Const WS_EX_LAYERED = &H80000
    Private Const WS_EX_TRANSPARENT = &H20&
    Private Const LWA_ALPHA = &H2&
    
    Private Sub Form_Load()
        Dim lOldStyle As Long
        Dim bTrans As Byte ' The level of transparency (0 - 255)
    
        bTrans = 128
        lOldStyle = GetWindowLong(Me.hwnd, GWL_EXSTYLE)
        SetWindowLong Me.hwnd, GWL_EXSTYLE, lOldStyle Or WS_EX_LAYERED
        SetLayeredWindowAttributes Me.hwnd, 0, bTrans, LWA_ALPHA
    End Sub

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.