В моем интерфейсе у меня есть несколько кнопок, поле со списком и окно, в котором я отображаю последовательность изображений. Эти кнопки перемещаются по последовательности, но я также хотел перемещаться по стрелкам ВЛЕВО и ВПРАВО на клавиатуре. После компиляции клавиши клавиатуры работают нормально, потому что Фокус установлен в главном окне, но после нажатия кнопки или комбинации клавиш клавиатуры не работает. Я управляю этим с помощью SetFocus (main_hwnd) в моем главном цикле, но тогда поле со списком не реагирует на нажатие.
Пример ниже:
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_CREATE:
CreateWindowEx(0, "COMBOBOX", "", WS_CHILD | WS_VISIBLE | CBS_SORT | CBS_DROPDOWNLIST, 478, 5, 50, 200, hwnd, (HMENU)ID_COMBO1, GetModuleHandle(NULL), NULL);
break;
case WM_COMMAND:
break;
case WM_KEYDOWN:
switch(wParam)
{
case VK_SPACE:
PostQuitMessage(0);
break;
}
break;
case WM_DESTROY:
PostQuitMessage (0);
break;
default:
return DefWindowProc (hwnd, message, wParam, lParam);
}
// SetFocus(hwnd);
return 0;
}
рассмотрим этот пример:
после компиляции SPACE KEY будет работать, но после нажатия на выпадающий список, он не будет работать. Если я использую SetFocus (hwnd), SPACE KEY всегда будет работать, но поле со списком будет отключено.
Спасибо за помощь.