Informazioni sui controlli up-down
Un controllo verso l'alto è una coppia di pulsanti freccia su cui l'utente può fare clic per incrementare o decrementare un valore, ad esempio una posizione di scorrimento o un numero visualizzato in un controllo complementare (denominato finestra di un amico).
Per l'utente, un controllo up-down e la relativa finestra amico spesso sono simili a un singolo controllo. È possibile specificare che un controllo verso il basso si posiziona automaticamente accanto alla finestra del compagno e che imposta automaticamente la didascalia della finestra del compagno sulla posizione corrente. Ad esempio, è possibile usare un controllo di scorrimento con un controllo di modifica per richiedere all'utente l'input numerico. Nella figura seguente viene illustrato un controllo di scorrimento con un controllo di modifica come finestra amico, una combinazione talvolta definita controllo di selezione.
In questa sezione vengono illustrati gli argomenti seguenti.
- Stili di controllo up-down
- Posizione e accelerazione
- Impostazione predefinita dei controlli up-down per l'elaborazione dei messaggi
Stili di controllo up-down
Usando gli stili di finestra, è possibile modificare le caratteristiche di un controllo up-down, ad esempio come si posiziona rispetto alla finestra corrispondente, se imposta il testo della finestra del compagno e se elabora i tasti FRECCIA SU e FRECCIA GIÙ.
Un controllo verso il basso con lo stile UDS_ALIGNLEFT o UDS_ALIGNRIGHT è allineato al bordo sinistro o destro della finestra del compagno. La larghezza della finestra amico viene ridotta per contenere la larghezza del controllo verso il basso.
Un controllo di scorrimento con lo stile UDS_edizione Standard TBUDDYINT imposta il didascalia della finestra del compagno ogni volta che cambia la posizione corrente. Il controllo inserisce un separatore di migliaia tra le tre cifre di una stringa decimale, a meno che non venga specificato lo stile UDS_NOTHOUSANDS. Se la finestra dell'amico è una casella di riepilogo, un controllo verso l'alto imposta la selezione corrente anziché il relativo didascalia.
È possibile specificare lo stile UDS_ARROWKEYS per fornire un'interfaccia della tastiera per un controllo verso il basso. Se si specifica questo stile, il controllo elabora i tasti freccia su e giù. Il controllo sottoclassa anche la finestra dell'amico in modo che possa elaborare questi tasti quando la finestra dell'amico ha lo stato attivo.
Se si utilizza un controllo di scorrimento verso l'alto per lo scorrimento orizzontale, è possibile specificare lo stile UDS_HORZ. Questo stile fa sì che le frecce del controllo verso l'alto verso il basso puntino verso sinistra e destra anziché verso l'alto e verso il basso.
Per impostazione predefinita, la posizione corrente non cambia se l'utente tenta di incrementarlo o decrementarlo oltre il valore massimo o minimo. È possibile modificare questo comportamento usando lo stile di UDS_WRAP , quindi la posizione "esegue il wrapping" all'estremità opposta. Ad esempio, l'incremento oltre il limite superiore esegue il wrapping della posizione al limite inferiore.
Posizione e accelerazione
Dopo aver creato un controllo di scorrimento, è possibile modificare la posizione corrente, la posizione minima e la posizione massima del controllo inviando messaggi. È anche possibile modificare la base di radix usata per visualizzare la posizione corrente nella finestra buddy e la frequenza con cui cambia la posizione corrente quando si fa clic sulla freccia su o giù.
Per recuperare la posizione corrente di un controllo verso il basso, utilizzare il messaggio di UDM_GETPOS. Per un controllo verso l'alto con una finestra del amico, la posizione corrente è il numero nella didascalia della finestra del amico. Poiché il didascalia potrebbe essere stato modificato (ad esempio, l'utente potrebbe aver modificato il testo di un controllo di modifica), il controllo di scorrimento recupera il didascalia corrente e ne aggiorna la posizione corrente di conseguenza.
Il didascalia della finestra di contatto può essere una stringa decimale o esadecimale, a seconda della base radix (ovvero base 10 o 16) del controllo up-down. È possibile impostare la base di radix usando il messaggio UDM_edizione Standard TBA edizione Standard e recuperare la base di radix usando il messaggio UDM_GETBAedizione Standard.
Il messaggio UDM_edizione Standard TPOS imposta la posizione corrente di una finestra di un amico. Si noti che, a differenza di una barra di scorrimento, un controllo verso il basso cambia automaticamente la posizione corrente quando si fa clic sulle frecce su e giù. Un'applicazione, pertanto, non deve impostare la posizione corrente durante l'elaborazione del messaggio WM_VSCROLL o WM_HSCROLL.
È possibile modificare le posizioni minime e massime di un controllo up-down usando il messaggio UDM_edizione Standard TRANGE. La posizione massima può essere inferiore al minimo e in tal caso facendo clic sul pulsante freccia su viene ridotta la posizione corrente. Per metterlo in un altro modo, in alto significa spostarsi verso la posizione massima. Per recuperare le posizioni minime e massime per un controllo up-down, utilizzare il messaggio di UDM_GETRANGE .
È possibile controllare la frequenza con cui cambia la posizione quando l'utente tiene premuto un pulsante freccia impostando l'accelerazione del controllo verso l'alto. L'accelerazione è definita da una matrice di strutture UDACCEL. Ogni struttura specifica un intervallo di tempo e il numero di unità in base alle quali incrementare o decrementare alla fine di tale intervallo. Per impostare l'accelerazione, usare il messaggio UDM_edizione Standard TACCEL. Per recuperare informazioni sull'accelerazione, usare il messaggio UDM_GETACCEL.
Impostazione predefinita dei controlli up-down per l'elaborazione dei messaggi
In questa sezione vengono descritti i messaggi di Windows standard elaborati da un controllo di scorrimento.
Message | Elaborazione eseguita |
---|---|
WM_CREATE | Alloca e inizializza una struttura di dati privati e ne salva l'indirizzo come dati della finestra. |
WM_DESTROY | Libera i dati allocati durante l'elaborazione WM_CREATE. |
WM_ENABLE | Invalida la finestra. |
WM_KEYDOWN | Modifica la posizione corrente nel caso di un tasto FRECCIA SU o FRECCIA GIÙ. |
WM_KEYUP | Completa la modifica della posizione. |
WM_LBUTTONDOWN | Acquisisce il mouse. Se la finestra dell'amico è un controllo di modifica o una casella di riepilogo, imposta lo stato attivo sulla finestra dell'amico. Se il mouse si trova sopra il pulsante su o giù, inizia a modificare la posizione e imposta un timer. |
WM_LBUTTONUP | Completa la modifica della posizione e rilascia l'acquisizione del mouse se il controllo up-down ha acquisito il mouse. Se la finestra amico è un controllo di modifica, seleziona tutto il testo nel controllo di modifica. |
WM_PAINT | Disegna il controllo verso il basso. Se il parametro wParam è diverso da NULL, il controllo presuppone che il valore sia un HDC e disegna utilizzando tale contesto di dispositivo. |
WM_TIMER | Modifica la posizione corrente se il mouse viene tenuto premuto su un pulsante e un intervallo sufficiente è trascorso. |