2009-05-04 14 views
13

Utilizzando MS Visual Studio, ho associato un controllo di selezione a un controllo di modifica utilizzando la proprietà "auto buddy".MFC: Perché il controllo spin funziona all'indietro

Il controllo di rotazione modifica la casella di modifica, ma il pulsante su riduce il valore e il pulsante giù aumenta il valore.

Come si aggiorna?

risposta

16

Perché è così. 8-) Puoi aggirare il problema usando SetRange.

La documentazione dice "L'intervallo predefinito per il pulsante di rotazione ha il massimo impostato su zero (0) e il minimo su 100. Poiché il valore massimo è inferiore al valore minimo, facendo clic sulla freccia su diminuisce la posizione e facendo clic sulla freccia verso il basso lo aumenterà. Usa CSpinButtonCtrl :: SetRange per regolare questi valori. " ... senza alcuna spiegazione decente.

+0

SetRange32 se è necessario un intervallo più ampio – linquize

12

La ragione per cui funziona in questo modo è perché un controllo di rotazione è una barra di scorrimento appena velata e le finestre utilizzano un sistema di coordinate in cui le righe aumentano mentre si sposta verso il basso (quindi la freccia in giù aumenta il valore).

Per risolvere il problema, basta scambiare i valori minimo e massimo che si stanno utilizzando al momento della chiamata a SetRange.

+0

+1 per il Why e il How. – RichieHindle

Problemi correlati