MFC: Почему мой спин-контроль работает в обратном направлении - PullRequest
13 голосов
/ 05 мая 2009

Используя MS Visual Studio, я прикрепил элемент управления spin к элементу редактирования, используя свойство auto buddy.

Элемент управления вращением изменяет поле редактирования, но кнопка «вверх» уменьшает значение, а кнопка «вниз» увеличивает значение.

Как это исправить?

Ответы [ 2 ]

18 голосов
/ 05 мая 2009

Потому что так оно и есть. 8-) Вы обходите его, используя SetRange.

В документации сказано: «Диапазон по умолчанию для кнопки прокрутки имеет максимум, установленный на ноль (0), и минимум, установленный на 100. Поскольку максимальное значение меньше минимального значения, нажатие стрелки вверх приведет к уменьшению положения и нажатие стрелки вниз увеличит его. Используйте CSpinButtonCtrl :: SetRange, чтобы настроить эти значения. " ... без приличного объяснения.

12 голосов
/ 05 мая 2009

Причина, по которой он работает таким образом, заключается в том, что элемент управления вращением - это просто тонко завуалированная полоса прокрутки, и окна используют систему координат, в которой строки увеличиваются при перемещении вниз (поэтому стрелка вниз увеличивает значение).

Чтобы исправить это, просто поменяйте минимальное и максимальное значения, которые вы используете в данный момент при вызове SetRange.

...