MFC: Perché il mio controllo spin funziona all'indietro
-
03-07-2019 - |
Domanda
Usando MS Visual Studio, ho collegato un controllo di rotazione a un controllo di modifica usando il "buddy automatico" proprietà.
Il controllo di rotazione altera la casella di modifica, ma il pulsante su riduce il valore e il pulsante giù aumenta il valore.
Come si risolve questo problema?
Soluzione
Perché è così. Cool Ci aggiri usando SetRange
.
La documentazione dice " L'intervallo predefinito per il pulsante di selezione ha il massimo impostato su zero (0) e il minimo impostato su 100. Poiché il valore massimo è inferiore al valore minimo, facendo clic sulla freccia su si riduce la posizione e facendo clic sulla freccia verso il basso la aumenterà. Utilizza CSpinButtonCtrl :: SetRange per regolare questi valori. & Quot; ... senza alcuna spiegazione decente.
Altri suggerimenti
Il motivo per cui funziona in questo modo è perché un controllo di rotazione è solo una barra di scorrimento leggermente velata e Windows utilizza un sistema di coordinate in cui le righe aumentano man mano che si sposta verso il basso (quindi la freccia giù aumenta il valore).
Per risolverlo, basta scambiare i valori minimo e massimo attualmente in uso quando si chiama SetRange.