Visualizzazione dei risultati da 1 a 5 su 5

Discussione: vb6 maxbutton

  1. #1
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514

    vb6 maxbutton

    salve vorrei che il mio form si aprisse in tutta la sua grandezza.avevo pensato di inserire in load form

    me.maxbutton

    mi dice che ci sono delle restrizioni per cui il comando nmon può essere eseguito
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  2. #2
    Utente di HTML.it L'avatar di Sypher
    Registrato dal
    Jun 2003
    Messaggi
    1,994
    ma nn ti basta impostare lo windowstate a maximized?
    La passera non dura perchè Sypher la cattura!

    "No one like us we don't care, we are millwall, super millwall, we are millwall from the DEN"

  3. #3
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    si infatti bastava quello ma volevo sapere come utilizzare il comando.il mio problema ora è risolto ma si può usare il max button da codice?

    inoltre non capisco perchè di una cosa. anche se imposto come proprietà width e height di un form child lui fa le cose a modo suo...da cosa può dipendere?


    grazie per la priam risposta aspetto la seconda
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  4. #4
    salve vorrei che il mio form si aprisse in tutta la sua grandezza
    Se questo deve verificarsi ad ogni avvio non hai bisogno di scrivere codice: ti basta impostare WindowState a 2 dalla finestra proprietà in fase di design. Se invece devi farlo da codice puoi scrivere

    Me.WindowState = 2

    nell'evento Load o Initialize del Form.


    ma si può usare il max button da codice?
    presumo tu intenda dire nascondere o visualizzare il MaxButton tramite codice... in tal caso No !
    Con il solo VB puro non puoi farlo. Questa proprietà, così come altre (MinButton, BorderStyle, ControlBox, Moveable, ShowInTaskBar,...), non possono essere settare a run-time dal codice.

    Queste impostazioni sono quelle che vengono definite "stili" della finestra e possono essere manipolate attraverso l'API di Windows. Quello che devi fare è utilizzare le funzioni
    API "GetWindowLong" e "SetWindowLong" con la costante GWL_STYLE... queste due funzioni hanno vari scopi: permettono di recuperare e modificare impostazioni delle finestra... con la costante GWL_STYLE consentono di recuperare e modificare impostazioni di stili delle finestre.

    Eccoti un esempietto:

    Option Explicit

    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 SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long

    Const WS_MINIMIZEBOX = &H20000
    Const WS_MAXIMIZEBOX = &H10000
    Const WM_NCPAINT As Long = &H85

    Const GWL_STYLE = (-16)

    '
    Sub RemoveMinButton()

    ' Disabilita/nasconde il pulsante "Minimize" della Form
    SetWindowLong hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) And Not (WS_MINIMIZEBOX)
    SendMessage Me.hwnd, WM_NCPAINT, 0, 0
    End Sub

    '
    Sub AddMinButton()

    ' Abilita/mostra il pulsante "Minimize" della Form
    SetWindowLong hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) Or (WS_MINIMIZEBOX)
    SendMessage Me.hwnd, WM_NCPAINT, 0, 0
    End Sub

    '
    Sub RemoveMaxButton()

    ' Disabilita/nasconde il pulsante "Maximize" della Form
    SetWindowLong hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) And Not (WS_MAXIMIZEBOX)
    SendMessage Me.hwnd, WM_NCPAINT, 0, 0
    End Sub

    '
    Sub AddMaxButton()

    ' Abilita/mostra il pulsante "Maximize" della Form
    SetWindowLong hwnd, GWL_STYLE, GetWindowLong(hwnd, GWL_STYLE) Or (WS_MAXIMIZEBOX)
    SendMessage Me.hwnd, WM_NCPAINT, 0, 0
    End Sub


    noterai che le sub che ho scritto operano in questo modo:
    recuperano lo stile con GetWindowLong,
    eseguono AND NOT tra valore restituito e costante pulsante
    (per eliminarlo)
    oppure
    eseguono OR tra valore restituito e costante pulsante
    (per visualizzarlo)
    infine eseguono SendMessage per inviare un mess. WM_NCPAINT allo stesso Form.
    Questo è necessario perchè, quando si modificano impostazioni degli stili delle finestre, si rende necessario eseguirne un ridisegno (per rendere effettive le modifiche allo stile). Così basta causare un evento Paint del form...

    Noterai inoltre che i due pulsanti (Max e Min) sono, in un certo sento, vincolati tra loro: diventano invisibili solo quando tutti e due sono disabilitati...
    Questa è una caratteristica degli stili e non c'è possibilità di modificare questo comportamento.

    Bene, ho terminato. Spero di averti dato le risposte che cercavi.

    Ciao
    Simo

  5. #5
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,514
    grazie sei stao molto gentile e preciso
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


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.