2009-05-04 9 views
13

Usando MS Visual Studio, he adjuntado un control de giro a un control de edición usando la propiedad "auto buddy".MFC: ¿Por qué mi control de giro funciona al revés?

El control de giro altera el cuadro de edición, pero el botón hacia arriba disminuye el valor y el botón hacia abajo aumenta el valor.

¿Cómo se soluciona esto?

Respuesta

16

Porque así es como es. 8-) Usted trabaja alrededor usando SetRange.

La documentación dice "El rango predeterminado para el botón de centrifugado tiene el máximo establecido en cero (0) y el mínimo establecido en 100. Como el valor máximo es menor que el mínimo, al hacer clic en la flecha hacia arriba disminuirá la posición y haciendo clic en la flecha hacia abajo aumentará. Use CSpinButtonCtrl :: SetRange para ajustar estos valores. " ... sin ninguna explicación decente.

+0

SetRange32 si necesita mayor rango – linquize

12

La razón por la que funciona de esta manera es porque un control de giro es solo una barra de desplazamiento apenas 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, simplemente intercambie los valores mínimo y máximo que está utilizando actualmente cuando llama a SetRange.

+0

+1 para el Por qué y el Cómo. – RichieHindle

Cuestiones relacionadas