простое управление вращением winapi

Я пытаюсь сделать простое поле управления вращением и поле редактирования в WTL &/winapi. и это не работает должным образом, потому что я вижу только 0 как начальное значение, а стрелки не работают, код здесь:

HWND spin = GetDlgItem(IDC_SPIN1);
HWND edit = GetDlgItem(IDC_RANDOM_EDIT);
::SendMessage(spin, UDM_SETBUDDY, (WPARAM)edit, 0); //set buddy
::SendMessage(spin, UDM_SETRANGE, MAKELPARAM(0,100), 0); //interval

::SendMessage(spin, UDM_SETBASE, 10, 0); //initial position

person AlexandruC    schedule 03.04.2013    source источник


Ответы (2)


У вас поменялись местами wparam и lparam. Вы также поменяли местами низкие и высокие слова.

::SendMessage(spin, UDM_SETRANGE, 0, MAKELPARAM(100,0)); //interval

См. определения UDM_SETRANGE и MAKELPARAM.

person Mark Ransom    schedule 03.04.2013

В WTL у вас есть класс-оболочка CUpDownCtrl для управления вверх-вниз. Итак, все просто:

CUpDownCtrl Control = ... // e.g. GetDlgItem(IDC_MYCONTROL);
INT nMinValue = 0, nMaxValue = 100;
Control.SetRange(nMinValue, nMaxValue);
person Roman R.    schedule 08.04.2013