Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    117

    [VB6] Eliminare il pulsante di Massimizzazione di una finestra MDIForm

    Salve a tutti,
    come si sa in una MDI Form, in alto a destra ci sono i 3 pulsanti classici per qualsiasi finestra windows ovvero il pulsante X per chiudere la finestra, il pulsante per massimizzarla e il pulsante per minimizzarla.

    Io vorrei eliminare il pulsante per massimizzare della finestra.

    Come posso fare?

  2. #2
    la risposta è supersemplice: maxbutton = false

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    117
    L'avrei fatto ma tra le propieta' del MDIForm non c'e' maxbotton quindi non posso mettere false

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Per esempio ...

    codice:
    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 GetWindowLong _
        Lib "user32" _
        Alias "GetWindowLongA" _
       (ByVal hwnd As Long, _
       ByVal nIndex As Long) As Long
       
    Private Declare Function GetSystemMenu _
        Lib "user32" _
        (ByVal hwnd As Long, _
        ByVal bRevert As Long) As Long
        
    Private Declare Function DeleteMenu _
        Lib "user32" _
        (ByVal hMenu As Long, _
        ByVal iditem As Long, _
        ByVal wFlags As Long) As Long
    
    Private Const GWL_STYLE As Long = (-16)
    Private Const WS_MAXIMIZEBOX = &H10000
    Private Const MF_REMOVE = &H1000&
    Private Const SC_MAXIMIZE = &HF030&
    
    Sub MDIForm_Load()
        Dim lWnd As Long
        lWnd = GetWindowLong(hwnd, GWL_STYLE)
        lWnd = lWnd And Not (WS_MAXIMIZEBOX)
        lWnd = SetWindowLong(Me.hwnd, GWL_STYLE, lWnd)
    
        Dim hMenu As Long
        hMenu = GetSystemMenu(hwnd, 0)
        DeleteMenu hMenu, SC_MAXIMIZE, MF_REMOVE
    End Sub

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    117
    Mitico oregon sei fantastico!

    Magari un giorno mi insegnavi come fai a far ste cose.

    Grazie infinite

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    117
    E' incredibile oregon!

    Funziona ma se creo l'eseguibile non funziona piu'!

    ossia e' come che fosse il prg di prima.

    Perche'?

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    117
    E' ancora piu' strano perche' se faccio il pacchetto d'installazione funziona.

    Volevo evitare di creare il pacchetto d'installazione di questo prg, prima cosa perche' nonostate uso vb6 da + di 2 anni non sono ancora capace di creare pacchetti decenti e seconda cosa finora con 4 click di mouse facevo l'eseguibile e li passavo ai miei amici.

    Se puoi oregon trovarmi una soluzione...

    Grazie

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ho creato l'eseguibile e funziona.

    L'esempio che ti ho mostrato prevede che il progetto si avvii dalla Sub MDIForm_Load()

    Se il tuo progetto usa la funzione Main() allora devi inserire il codice in tale funzione.

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    117
    Ho provato a mettere:

    Sub MDIForm_Load()

    ma non cambia nulla, nell'eseguibile non funziona.

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma nelle opzioni, il progetto da dove parte?

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.