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

    [VisualBasic 6.0] Mettere in evidenza e senza sfondo

    Io in genere uso Visual Basic 2008, ma per un lavoro che devo fare sono costretto ad usare Visual Basic 6.0. Ho notato che tra le due versioni ci sono delle differenze e ora ho dei problemi. Per rendere in primo piano una finestra su Visual Basic 2008 basta che scrivevo "TopMost = true" mentre su quello 6.0 non me lo fa. Su visual basic 2008 si può ad esempio in un group box mettere sfondo trasparente, ma il codice inserito su visual basic 6.0 non mi funziona. Qualcuno mi può illuminare aiutandomi?
    Grazie in anticipo degli aiuti che mi darete

  2. #2
    Non ho qua VB6.0, e dunque nn posso verificare.
    comunque mi sembra di ricordare che in visual basic 6.0 ogni oggetto ha un metodo zorder, che consente di portare un oggetto "sopra" o "sotto" nell'asse z.
    Mentre per i form, mi pare che il discorso fosse leggermente diverso. Dovrebbero avere una proprietà (o metodo) activated o qualcosa di simile, che consente di attivarli e metterli dunque in rilievo tra le varie finestre di windows, o al massimo prova a fare me.show(), non sono sicuro, ma se magari il form è già caricato lo porta semplicemente in primo piano.
    Mentre ricordo che VB non gestiva il discorso delle trasparenze. li devi provare a tentativi a costruirti ocx o a scaricartene da web, perchè vb non gestisce le trasparenze per l'appunto.

    spero di essere stato d'aiuto, anche se non ricordo molto. vai a tentativi e prova ..
    Programmazione .NET
    http://www.samueletosatto.tk

  3. #3
    Le ho tentate tutte ma niente... in VB 2008 queste funzioni ci sono, io stesso le ho provate, ma per VB 6.0 non capisco come si fa... Chi lo sa mi potrebbe postare i due codici (form in primo piano e trasparenza) perfavore?

  4. #4
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Infatti non esistono in VB6.

    In VB6 esiste il Frame ma non è trasparente, anzi è meglio evitare di usarlo perchè ha problemi. Per avere un groupbox trasparente occorre un espendiente, in pratica si prende un CommandButton e gli si cambia lo stile in BS_GROUPBOX (via API), in questo modo diventa trasparente, in questo mio articolo, che include il progetto sorgente, spiego come fare:
    Controlli standard di VB in stile Windows XP
    a cura di Giorgio Brausi (pubblicato il 29/04/2002)
    Come utilizzare il nuovo stile grafico di Windows XP in tutti i controlli standard dei vostri programmi VB e le finestre di dialogo standard. (3 articoli)
    http://www.visual-basic.it/articoli/gbVBxpCtrl.htm

    Per quanto riguarda il TopMost anche qui occorre farlo via API, ecco come (da inserire in un modulo BAS):

    codice:
    Private Declare Function SetWindowPos Lib "User32" _
                                        (ByVal hWnd As Long, _
                                         ByVal hWndInsertAfter As Long, _
                                         ByVal X As Long, Y, _
                                         ByVal cx As Long, _
                                         ByVal cy As Long, _
                                         ByVal wFlags As Long) As Long
    Private Const HWND_TOPMOST = -1
    Private Const HWND_NOTOPMOST = -2
    Private Const SWP_NOMOVE = &H2
    Private Const SWP_NOSIZE = &H1
    
    Public Sub MakeTopMost(hWnd As Long)
        SetWindowPos hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
    End Sub
    Ciao

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Teniamo sempre presente, quando si fanno confronti, che con VB6 parliamo del 1998 ...

    Chissà se nel 2018 ricorderemo Visual Studio 2008 ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Originariamente inviato da gibra
    Infatti non esistono in VB6.

    In VB6 esiste il Frame ma non è trasparente, anzi è meglio evitare di usarlo perchè ha problemi. Per avere un groupbox trasparente occorre un espendiente, in pratica si prende un CommandButton e gli si cambia lo stile in BS_GROUPBOX (via API), in questo modo diventa trasparente, in questo mio articolo, che include il progetto sorgente, spiego come fare:
    Controlli standard di VB in stile Windows XP
    a cura di Giorgio Brausi (pubblicato il 29/04/2002)
    Come utilizzare il nuovo stile grafico di Windows XP in tutti i controlli standard dei vostri programmi VB e le finestre di dialogo standard. (3 articoli)
    http://www.visual-basic.it/articoli/gbVBxpCtrl.htm

    Per quanto riguarda il TopMost anche qui occorre farlo via API, ecco come (da inserire in un modulo BAS):

    codice:
    Private Declare Function SetWindowPos Lib "User32" _
                                        (ByVal hWnd As Long, _
                                         ByVal hWndInsertAfter As Long, _
                                         ByVal X As Long, Y, _
                                         ByVal cx As Long, _
                                         ByVal cy As Long, _
                                         ByVal wFlags As Long) As Long
    Private Const HWND_TOPMOST = -1
    Private Const HWND_NOTOPMOST = -2
    Private Const SWP_NOMOVE = &H2
    Private Const SWP_NOSIZE = &H1
    
    Public Sub MakeTopMost(hWnd As Long)
        SetWindowPos hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE
    End Sub
    Ciao
    Ciao, grazie della risposta. Comunque ho un'altro problema: inserisco per il TopMost questo codice in un modulo, ma per attivarlo rendendolo in primo piano come si fa? (premetto che vorrei che con un tasto vada in primo piano, che è alt di sinistra, e premendo alt di destra scompare)...e vorrei sapere anche se la parte sopra dove si può ingrandire la finestra, chiuderla e metterla sotto si può levare... se mi puoi aiutare anche in questo campo te ne sarei profondamente grato

  7. #7
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Se leggi meglio, ti ho già indicato anche la Sub da chiamare:

    codice:
    Public Sub MakeTopMost(hWnd As Long)
    Quindi ti basta richiamarla così

    codice:
    Call MakeTopMost(Form1.hWnd)
    Per Alt sinistra / Alt destra nel form devi:
    - impostare KeyPreview = True
    - usare l'evento KeyDown per testare il tasto premuto

    Per la parte sopra, come la chiami tu, si chiama barra del titolo
    (almeno cerchiamo di usare i termini corretti, perdindirindina. :quote:
    le combinazioni ottenibili sono diverse, devi agire in base alle tue necessità intervenendo sulle seguenti proprietà del form
    - BorderStyle
    - ControlBox

    Comunque queste cose sono scritte sulla guida, che ti raccomando di leggerti perchè vi sono sempre dettagli relativi a funzioni, metodi e proprietà che non si possono spiegare e descrivere in un post, ma che fanno la differenza a seconda dei casi perchè una singola impostazione può poi coinvolgerne altre.

    Ciao

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    19

    trasparenza frame e rich text box

    ciao mi è capitato di leggere la vostra discussione, e vorrei chiedere a questo proposito a trapianto 69 ( o chiunque si in grado di darmi una risposta) su come dare la trasparenza al frame inserito..
    premetto che uso Visual basic 2008..e sto cercando di mettere la trasparenza sia ai frame inseriti nel form che ai rich text box

    se riuscite a rispondere mi fareste proprio un grande piacere

  9. #9
    Utente di HTML.it L'avatar di giacomino_jack
    Registrato dal
    Feb 2002
    residenza
    Italy
    Messaggi
    202
    Ho un domanda un po' curiosa per gibra che dice:
    Per quanto riguarda il TopMost anche qui occorre farlo via API, ecco come (da inserire in un modulo BAS):
    Ho fatto un paio di prove ed effettivamente solo inserendo in un modulo .BAS la dichiarazione dell'APi e delle sue variabili insieme alla Sub MakeTopMost la chiamata all'API sortisce il suo effetto.
    Mi domando e chiedo: perchè inserendo tutto nel form non funziona correttamente?

    Grazie e

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da giacomino_jack
    Ho fatto un paio di prove ed effettivamente solo inserendo in un modulo .BAS la dichiarazione dell'APi e delle sue variabili insieme alla Sub MakeTopMost la chiamata all'API sortisce il suo effetto.
    Mi domando e chiedo: perchè inserendo tutto nel form non funziona correttamente?
    Questa cosa mi viene nuova ... come hai inserito il codice nel form? Che vuol dire "non funziona"?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.