Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [VB] Form trasparente

  1. #1

    [VB] Form trasparente

    Ciao a tutti, vorrei creare un form in VB che sia trasparente ossia che per esempio lo sfondo sia una parte del desktop di windows dove sono visibili soltanto i pulsanti (command), i text e i label. Grazie mille per l'aiuto!
    ciao !!! :þ by neo_86

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    88
    Solo nella versione 7 c'e' la possibilità di impostare l'opacità di una form

  3. #3
    Utente di HTML.it L'avatar di x69asterix
    Registrato dal
    Jan 2005
    Messaggi
    1,303
    Originariamente inviato da cidific
    Solo nella versione 7 c'e' la possibilità di impostare l'opacità di una form
    Ciao,
    solo a titolo d' informazione ma la ver.7, è vb.net?

  4. #4
    linguaggio e versione anche nel titolo, leggi il regolamento
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    88
    Originariamente inviato da x69asterix
    Ciao,
    solo a titolo d' informazione ma la ver.7, è vb.net?
    zip

  6. #6
    Si, quando si parla di VB7 si intende VB.net !
    Per la cronaca, ecco un esempio su come implementare nelle form di vb6 la proprietà opacity delle WindowsForm di vb.net... unica differenza: in questo esempio la proprietà può accettare un'intero compreso tra 0 (del tutto trasparente) e 255 (del tutto visibile)
    codice:
    Option Explicit
    
    Private Declare Function SetLayeredWindowAttributes  _
       Lib "user32.dll" (ByVal hwnd As Long _
       , ByVal crKey As Long, ByVal bAlpha As Byte _
       , ByVal dwFlags As Long) As Long
    
    Private Declare Function SetWindowLong Lib "user32.dll" _
       Alias "SetWindowLongA" (ByVal hwnd As Long _
       , ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    
    Private Declare Function GetWindowLong Lib "user32.dll" _
       Alias "GetWindowLongA" (ByVal hwnd As Long _
       , ByVal nIndex As Long) As Long
    
      Private Const LWA_ALPHA As Long = &H2
      Private Const GWL_EXSTYLE As Long = -20
      Private Const WS_EX_LAYERED As Long = &H80000
    
    '
    Property Let Opacity(value As Integer)
    ' Imposta la trasparenza del form
    
      ' value deve essere compreso tra 0 e 255
      If value < 0 Or value > 255 Then
        Err.Raise 380, value
        Exit Property
      End If
        
      ' applica la trasparenza
      Dim CurrentExStyle As Long
      
      ' recupera lo stile esteso corrente
      CurrentExStyle = GetWindowLong(Me.hwnd, GWL_EXSTYLE)
      ' fa OR con stile layered
      CurrentExStyle = CurrentExStyle Or WS_EX_LAYERED
      ' applica il nuovo stile
      SetWindowLong Me.hwnd, GWL_EXSTYLE, CurrentExStyle
      ' applica la trasparenza
      SetLayeredWindowAttributes Me.hwnd, 0&, value, LWA_ALPHA
    End Property
    Comunque non credo sia ciò che cercavi.
    Se vuoi rendere invisibile la form e mostrare solo pulsanti e altri controlli presenti, devi operare con le regioni... E' un po' complesso da spiegare e ci sono numerosi passaggi da seguire per realizzarlo. Se questo è ciò che chiedevi vedo di trovare una mezz'oretta... ma che dico: una giornata per buttarti giù un po' di codice.

    Ciao
    Simo

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 © 2025 vBulletin Solutions, Inc. All rights reserved.