MFC: ¿Por qué mi control de giro funciona al revés?
-
03-07-2019 - |
Pregunta
Usando MS Visual Studio, he adjuntado un control giratorio a un control de edición usando el "amigo automático" propiedad.
El control de giro altera el cuadro de edición, pero el botón arriba disminuye el valor y el botón abajo aumenta el valor.
¿Cómo arreglas esto?
Solución
Porque así es como es. 8-) Se soluciona utilizando SetRange
.
La documentación dice "El rango predeterminado para el botón giratorio tiene el máximo establecido en cero (0) y el mínimo establecido en 100. Debido a que el valor máximo es menor que el valor mínimo, al hacer clic en la flecha hacia arriba disminuirá la posición y haciendo clic en la flecha hacia abajo lo aumentará. Use CSpinButtonCtrl :: SetRange para ajustar estos valores. & Quot; ... sin ninguna explicación decente.
Otros consejos
La razón por la que funciona de esta manera es porque un control de giro es solo una barra de desplazamiento finamente velada, y las ventanas usan un sistema de coordenadas donde las filas aumentan a medida que se mueve hacia abajo (por lo que la flecha hacia abajo aumenta el valor).
Para solucionarlo, solo intercambie los valores mínimo y máximo que está utilizando actualmente cuando llama a SetRange.