Comment créer une interface clavier pour les barres de défilement standard

Bien qu’un contrôle de barre de défilement fournisse une interface clavier intégrée, aucune barre de défilement standard ne le fait. Pour implémenter une interface clavier pour une barre de défilement standard, une procédure de fenêtre doit traiter le message KeyOut WM _ et examiner le code de la touche virtuelle spécifié par le paramètre wParam . Si le code de la touche virtuelle correspond à une touche de direction, la procédure de fenêtre s’envoie un message WM _ HSCROLL ou WM _ VSCROLL avec le mot de poids faible du paramètre wParam défini sur le code de requête de la barre de défilement appropriée.

Par exemple, quand l’utilisateur appuie sur la touche haut, la procédure de fenêtre reçoit un message _ WM KeyOut avec wParam égal à VK _ up. En réponse, la procédure de fenêtre s’envoie lui-même un message WM _ VSCROLL avec le mot de poids faible de wParam défini sur le code de demande de la _ programmation SB.

Bon à savoir

Technologies

Prérequis

  • C/C++
  • Windows Programmation de l’interface utilisateur

Instructions

Créer une interface clavier pour une barre de défilement standard

L’exemple de code suivant montre comment inclure une interface clavier pour une barre de défilement standard.

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

Utilisation des barres de défilement

Windows démonstration des contrôles communs (CppWindowsCommonControls)