Поделиться через


Создание интерфейса клавиатуры для стандартных полос прокрутки

Хотя элемент управления полосой прокрутки предоставляет встроенный интерфейс клавиатуры, стандартная полоса прокрутки не поддерживается. Чтобы реализовать интерфейс клавиатуры для стандартной полосы прокрутки, процедура окна должна обработать сообщение WM_KEYDOWN и проверить код виртуального ключа, указанный параметром wParam. Если код виртуального ключа соответствует клавише со стрелкой, процедура окна отправляет сам WM_HSCROLL или WM_VSCROLL сообщение с словом с низким порядком параметра wParam, заданным для соответствующего кода запроса полосы прокрутки.

Например, когда пользователь нажимает клавишу СТРЕЛКА ВВЕРХ, процедура окна получает сообщение WM_KEYDOWN с wParam равным VK_UP. В ответ процедура окна отправляет сам WM_VSCROLL сообщение с словом wParam с низким порядком, заданным в коде запроса SB_LINEUP.

Это важно знать

Технологии

Необходимые компоненты

  • C/C++
  • Программирование пользовательского интерфейса Windows

Instructions

Создание интерфейса клавиатуры для стандартной полосы прокрутки

В следующем примере кода показано, как включить интерфейс клавиатуры для стандартной полосы прокрутки.

    case WM_KEYDOWN: 
    {
        WORD wScrollNotify = 0xFFFF;

        switch (wParam) 
        { 
            case VK_UP: 
                wScrollNotify = SB_LINEUP; 
                break; 
 
            case VK_PRIOR: 
                wScrollNotify = SB_PAGEUP; 
                break; 
 
            case VK_NEXT: 
                wScrollNotify = SB_PAGEDOWN; 
                break; 
 
            case VK_DOWN: 
                wScrollNotify = SB_LINEDOWN; 
                break; 
 
            case VK_HOME: 
                wScrollNotify = SB_TOP; 
                break; 
 
            case VK_END: 
                wScrollNotify = SB_BOTTOM; 
                break; 
        } 
 
        if (wScrollNotify != -1) 
            SendMessage(hwnd, WM_VSCROLL, MAKELONG(wScrollNotify, 0), 0L); 
 
        break; 
    }

Использование полос прокрутки

Демонстрация общих элементов управления Windows (CppWindowsCommonControls)