Compartilhar via


Como criar uma interface de teclado para barras de rolagem padrão

Embora um controle de barra de rolagem forneça uma interface de teclado interna, uma barra de rolagem padrão não. Para implementar uma interface de teclado para uma barra de rolagem padrão, um procedimento de janela deve processar a mensagem WM_KEYDOWN e examinar o código de chave virtual especificado pelo parâmetro wParam. Se o código de chave virtual corresponder a uma tecla de seta, o procedimento de janela enviará a si mesmo uma mensagem de WM_HSCROLL ou WM_VSCROLL com a palavra de ordem baixa do parâmetro wParam definido como o código de solicitação de barra de rolagem apropriado.

Por exemplo, quando o usuário pressiona a tecla de seta para cima, o procedimento de janela recebe uma mensagem WM_KEYDOWN com wParam igual a VK_UP. Em resposta, o procedimento de janela envia a si mesmo uma mensagem de WM_VSCROLL com a palavra de ordem baixa de wParam definida como o código de solicitação SB_LINEUP.

O que você precisa saber

Tecnologias

Pré-requisitos

  • C/C++
  • Programação da interface do usuário do Windows

Instruções

Criar uma interface de teclado para uma barra de rolagem padrão

O exemplo de código a seguir demonstra como incluir uma interface de teclado para uma barra de rolagem padrão.

    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; 
    }

Usando barras de rolagem

Demonstração de controles comuns do Windows (CppWindowsCommonControls)