CListBox::VKeyToItem
Wywołana w ramach po odebraniu okno nadrzędne pola listy WM_VKEYTOITEM komunikat w polu listy.
virtual int VKeyToItem(
UINT nKey,
UINT nIndex
);
Parametry
nKey
Kod klucza wirtualnego klucza użytkownik nacisnął klawisz.Wykaz standardowych kodów klucza wirtualnego Zobacz pliku Winuser.hnIndex
Bieżąca pozycja kursora w polu listy.
Wartość zwracana
Zwraca – 2 żadne dalsze działania – 1, domyślnego działania, liczba nieujemna, aby określić indeks elementu pola listy, na którym wykonuje akcję domyślnego naciśnięcia klawisza.
Uwagi
WM_VKEYTOITEM Wiadomość jest wysyłana przez pole listy, gdy odbiera WM_KEYDOWN wiadomości, ale tylko jeśli pole listy spełnia oba z następujących:
Ma LBS_WANTKEYBOARDINPUT zestaw stylów.
Ma co najmniej jeden element.
Powinno się nigdy wywoływać tej funkcji samodzielnie.Zastąpić własną niestandardową obsługę wiadomości klawiatury tej funkcji.
Musi zwracać wartość w ramach stwierdzić, jakie działania wykonywane na zastępowanie.Wartość zwracana – 2 wskazuje, że aplikacja obsługi wszystkich aspektów zaznaczenie elementu i wymaga podejmowania dalszych działań przez pole listy.Przed zwróceniem – 2, może ustawić zaznaczenie lub przenoszenie kursora lub oba.Aby ustawić zaznaczenie, należy SetCurSel lub SetSel.Aby przenieść kursora, SetCaretIndex.
Wartość zwracana – 1 wskazuje, że pole listy, należy wykonać akcję domyślną w odpowiedzi na naciśnięcie klawisza.Zwraca wartość domyślna implementacja – 1.
Zwracana wartość 0 lub większa Określa indeks elementu w polu listy i wskazuje, że pole listy, należy wykonać akcję domyślną dla klawiszy na danego elementu.
Przykład
// CMyODListBox is my owner-drawn list box derived from CListBox. This
// example moves the caret down one item on the down key and up one item
// on the up key. The list box control was created with the following
// code:
// m_myODListBox.Create(
// WS_CHILD|WS_VISIBLE|WS_BORDER|WS_HSCROLL|WS_VSCROLL|
// LBS_SORT|LBS_MULTIPLESEL|LBS_OWNERDRAWVARIABLE|LBS_WANTKEYBOARDINPUT,
// CRect(10,250,200,450), pParentWnd, IDC_MYODLISTBOX);
//
int CMyODListBox::VKeyToItem(UINT nKey, UINT nIndex)
{
// On key up, move the caret up one item.
if ((nKey == VK_UP) && (nIndex > 0))
{
SetCaretIndex(nIndex-1);
}
// On key down, move the caret down one item.
else if ((nKey == VK_DOWN) && (nIndex < (UINT)GetCount()))
{
SetCaretIndex(nIndex+1);
}
// Do not perform any default processing.
return -2;
}
Wymagania
Nagłówek: afxwin.h