Cómo crear una interfaz de teclado para barras de desplazamiento estándar

Aunque un control de barra de desplazamiento proporciona una interfaz de teclado integrada, no lo hace una barra de desplazamiento estándar. Para implementar una interfaz de teclado para una barra de desplazamiento estándar, un procedimiento de ventana debe procesar el mensaje de WM_KEYDOWN y examinar el código de clave virtual especificado por el parámetro wParam . Si el código de clave virtual corresponde a una tecla de flecha, el procedimiento de ventana se envía a sí mismo un mensaje de WM_HSCROLL o WM_VSCROLL con la palabra de orden bajo del parámetro wParam establecido en el código de solicitud de barra de desplazamiento adecuado.

Por ejemplo, cuando el usuario presiona la tecla de flecha arriba, el procedimiento de ventana recibe un mensaje de WM_KEYDOWN con wParam igual a VK_UP. En respuesta, el procedimiento de ventana se envía a sí mismo un mensaje de WM_VSCROLL con la palabra de orden bajo de wParam establecida en el código de solicitud de SB_LINEUP.

Lo que necesita saber

Tecnologías

Requisitos previos

  • C/C++
  • Programación de la interfaz de usuario de Windows

Instrucciones

Crear una interfaz de teclado para una barra de desplazamiento estándar

En el ejemplo de código siguiente se muestra cómo incluir una interfaz de teclado para una barra de desplazamiento estándar.

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

Uso de barras de desplazamiento

Demostración de controles comunes de Windows (CppWindowsCommonControls)