Доброго времени суток. Подскажите по сабж, пожалуйста.
Пишу курсач. Препод затребовал графику на winapi (хотя предмет про структуры данных :thinking:). Собственно, она и стала камнем преткновения...
В одном из действий требуется узнать у пользователя число. Решил делать это через диалоговое окно. (которое было создано как ресурс в Visual Studio) Выглядит так
Мне такой вариант нравится больше всего. Предполагается, что пользователь может выбирать целые числа в диапазоне от 1 до некого MAX >= 1. И ему предлагается сделать это путем перетаскивания ползунка.
Вот только как ни пытался я получить в функции диалогового окна значение положения ползунка, или задать границы его значений, или установить шаг в 1 - ничего не выходит...
Вот одни из
нерабочих вариантов реализации
КодяраLRESULT CALLBACK AskNumber(
HWND hDlg,
UINT Msg,
WPARAM wParam,
LPARAM lParam
) {
HWND slinerBar = GetDlgItem(hDlg, IDC_NUMBER),
indicator = GetDlgItem(hDlg, IDC_CHOICE),
maxLabel = GetDlgItem(hDlg, IDC_MAX);
switch (Msg)
{
case WM_INITDIALOG:
// - Получить максимальное значение (MAX)
// - Отобразить MAX в текстовом lable
// - Изменить диапазон ползунка = [1;MAX]
// - Изменить шаг = 1 ползунка
// - Отобразить текущее значение ползунка в текстовом поле
return static_cast<LRESULT>(true);
case WM_HSCROLL:
//Перехватывать изменения ползунка
if (lParam == SB_THUMBPOSITION || lParam == SB_THUMBTRACK) {///????????????????????? Почему не работает??
nubm = HIWORD(wParam);
MessageBox(hWnd, L"Значение получено", L"ОМАГАД", MB_OK); //Не выводится
// - записать numb в текстовое поле
}
break;
case WM_COMMAND:
switch (LOWORD(wParam)) {
case ID_DO_TERN:
// Записываем выбранное значение в статическую переменную
EndDialog(hDlg, LOWORD(wParam));
return static_cast<LRESULT>(true);
break;
case IDC_NUMBER:
MessageBox(hWnd, L"Что-то зашевелилось...", L"ОМАГАД", MB_OK); //Не выводится
}
break;
}
return static_cast<LRESULT>(false);
}
Гуглежка тоже ничего не дала...
Подскажите, можно ли использовать этот ползунок для таких нужд? Или, может, я просто пытаюсь забить гвоздь микроскопом?