Crearea o interfață tastatură pentru o bară de defilare Standard

De?i un control bară de defilare oferă o interfață tastatură încorporată, o bară de defilare standard does nu. Să pună în aplicare o interfață tastatură pentru o bară de defilare standard, o procedură de fereastra trebuie să proces mesajul WM_KEYDOWN ?i examinează codul virtual-cheie specificat de parametrul wParam . În cazul în care codul de virtual-cheie corespunde unei taste săgeată, procedura fereastra sine trimite un mesaj WM_HSCROLL sau WM_VSCROLL cu cuvântul low-ordine parametrul wParam setat la mesajul de notificare a bara de defilare corespunzătoare. De exemplu, atunci când utilizatorul apasă tasta săgeată sus, procedura fereastra primește un mesaj de WM_KEYDOWN cu wParam egală cu VK_UP. În răspuns, procedura fereastra sine trimite un mesaj WM_VSCROLL cu cuvântul low-ordine wParam setat la mesajul de notificare SB_LINEUP.

Următorul exemplu arată cum se includ o interfață tastatură pentru o bară de defilare standard.

WORD wScrollNotify = 0xFFFF; 
 
WM_KEYDOWN de caz: switch (wParam) {VK_UP caz: wScrollNotify = SB_LINEUP; 
            pauză; 
 
        VK_PRIOR de caz: wScrollNotify = SB_PAGEUP; 
            pauză; 
 
        VK_NEXT de caz: wScrollNotify = SB_PAGEDOWN; 
            pauză; 
 
        VK_DOWN de caz: wScrollNotify = SB_LINEDOWN; 
            pauză; 
 
        VK_HOME de caz: wScrollNotify = SB_TOP; 
            pauză; 
 
        VK_END de caz: wScrollNotify = SB_BOTTOM; 
            pauză; 
    } Dacă (wScrollNotify! = -1) SendMessage (hwnd, WM_VSCROLL, MAKELONG (wScrollNotify, 0), 0 L); 
 
    pauză 

 

Index