Condividi tramite


Stati pulsante

Questa sezione illustra come la selezione di un pulsante modifica lo stato e il modo in cui l'applicazione deve rispondere.

La sezione è costituita dagli argomenti seguenti:

Selezione pulsante

L'utente può selezionare un pulsante in tre modi: facendo clic su di esso con il mouse, tabulando su di esso e quindi premendo INVIO o (se il pulsante fa parte di un gruppo definito dallo stile WS_GROUP ) tramite tabulazione sul pulsante selezionato nel gruppo e usando i tasti di direzione per spostarsi all'interno di tale gruppo. I due metodi di tabulazione fanno parte dell'interfaccia della tastiera predefinita fornita dal sistema. Per una descrizione completa di questa interfaccia, vedere Finestre di dialogo.

La selezione di un pulsante provoca in genere gli eventi seguenti:

  • Il sistema assegna al pulsante lo stato attivo della tastiera.
  • Il pulsante invia alla finestra padre un messaggio per notificarlo della selezione.
  • La finestra padre (o il sistema) invia il pulsante un messaggio per modificarne lo stato.
  • La finestra padre (o il sistema) ridisegna il pulsante per riflettere il nuovo stato.

Elementi di uno stato pulsante

Lo stato di un pulsante può essere caratterizzato dallo stato attivo, dallo stato di push e dallo stato di controllo.

Stato attivo

Lo stato attivo si applica a una casella di controllo, a un pulsante di opzione, a un pulsante di pressione o a un pulsante disegnato dal proprietario. Un pulsante riceve lo stato attivo della tastiera quando l'utente lo seleziona e perde lo stato attivo quando l'utente seleziona un altro controllo. Un solo controllo può avere lo stato attivo della tastiera alla volta.

Quando un pulsante ha lo stato attivo della tastiera, il sistema in genere evidenzia il testo, l'icona o la bitmap di un pulsante circondandolo con una linea tratteggiata. Inoltre, un pulsante di pressione ha un bordo scuro pesante quando ha lo stato attivo. Il sistema modifica automaticamente l'evidenziazione per un pulsante automatico, ma l'applicazione deve modificare l'evidenziazione per un pulsante non automatico inviando messaggi.

Stato push

Lo stato push si applica a un pulsante di pressione, a una casella di controllo, a un pulsante di opzione o a tre stati, ma non si applica ad altri pulsanti. Lo stato di push di un pulsante può essere premuto o non premuto. Quando viene premuto un pulsante (o un pulsante con lo stile BS_PUSHLIKE ), il pulsante viene disegnato come pulsante incassato. Quando non viene premuto, viene disegnato come pulsante alzato. Quando si fa clic su una casella di controllo, un pulsante di opzione o una casella di controllo a tre stati, lo sfondo del pulsante è grigio. Quando non viene premuto, lo sfondo del pulsante non è grigio.

Controlla stato

Lo stato del controllo si applica a una casella di controllo, un pulsante di opzione o una casella di controllo a tre stati, ma non si applica ad altri pulsanti. Lo stato può essere selezionato, cancellato o (per caselle di controllo a tre stati) indeterminato. Una casella di controllo viene selezionata quando contiene un segno di spunta e viene deselezionata in caso contrario. Un pulsante di opzione viene selezionato quando contiene un punto nero; viene cancellato quando non lo fa. Una casella di controllo a tre stati viene selezionata quando contiene un segno di spunta, viene deselezionata quando non lo fa ed è indeterminato quando contiene una casella grigia. Il sistema modifica automaticamente lo stato di controllo di un pulsante automatico, ma l'applicazione deve modificare lo stato di controllo di un pulsante non automatico.

Modifiche allo stato di un pulsante

Quando l'utente seleziona un pulsante, in genere è necessario modificare uno o più elementi dello stato del pulsante. Il sistema modifica automaticamente lo stato attivo per tutti i tipi di pulsante, lo stato di push per pulsanti o pulsanti con lo stile BS_PUSHLIKE e lo stato di controllo per tutti i pulsanti automatici. L'applicazione deve apportare tutte le altre modifiche di stato, tenendo conto del tipo, dello stile e dello stato corrente del pulsante. L'elenco seguente mostra gli elementi di stato che devono essere modificati per ogni tipo di pulsante:

  • Una casella di controllo deve modificare lo stato di controllo.
  • Un pulsante di opzione deve modificare lo stato di controllo. Potrebbe anche essere necessario modificare lo stato di controllo di altri pulsanti di opzione nello stesso gruppo per garantire la natura reciproca esclusiva dei pulsanti di opzione.
  • Poiché lo stato di un pulsante disegnato dal proprietario dipende dall'applicazione, ciò che l'applicazione deve modificare nel pulsante può variare. Non è necessario modificare alcun elemento di una casella di gruppo, perché gli utenti non possono selezionare caselle di gruppo.

Un'applicazione può determinare lo stato di un pulsante inviando un messaggio BM_GETCHECK o BM_GETSTATE. L'applicazione può impostare lo stato di un pulsante inviando un messaggio BM_edizione Standard TCHECK o BM_edizione Standard TSTATE.