Udostępnij za pośrednictwem


CListBox::CharToItem

Wywołana w ramach po odebraniu okno nadrzędne pola listy WM_CHARTOITEM komunikat w polu listy.

virtual int CharToItem( 
   UINT nKey, 
   UINT nIndex  
);

Parametry

  • nKey
    Kod ANSI znak wpisywany przez użytkownika.

  • nIndex
    Bieżąca pozycja kursora w polu listy.

Wartość zwracana

Zwraca-1 lub – 2 żadne dalsze działania lub liczba nieujemna, aby określić indeks elementu pola listy, na którym wykonuje akcję domyślnego klawiszy.Zwraca wartość domyślna implementacja – 1.

Uwagi

WM_CHARTOITEM Wiadomość jest wysyłana przez pole listy, gdy odbiera WM_CHAR wiadomości, ale tylko jeśli pole listy spełnia wszystkie następujące kryteria:

  • To pole listy rysowania przez właściciela.

  • Nie ma LBS_HASSTRINGS 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.

W sieci override musi zwracać wartość w ramach stwierdzić, jakie działania należy wykonać.Wartość zwracana – 1 lub – 2 wskazuje obsługiwane wszystkie aspekty zaznaczenie elementu i wymaga podejmowania dalszych działań przez pole listy.Przed zwróceniem – 1 – 2, użytkownik może ustawić zaznaczenie lub przenoszenie kursora lub oba.Aby ustawić zaznaczenie, należy SetCurSel lub SetSel.Aby przenieść kursora, SetCaretIndex.

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 a numeric key and up one item  
// on an alphabetic 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::CharToItem(UINT nChar, UINT nIndex)
{
   // On a numeric key, move the caret up one item. 
   if (isdigit(nChar) && (nIndex > 0))
   {
      SetCaretIndex(nIndex-1);
   }
   // On an alphabetic key, move the caret down one item. 
   else if (isalpha(nChar) && (nIndex < (UINT)GetCount()))
   {
      SetCaretIndex(nIndex+1);
   }

   // Do not perform any default processing. 
   return -1;
}

Wymagania

Nagłówek: afxwin.h

Zobacz też

Informacje

Klasa CListBox

Diagram hierarchii

CListBox::VKeyToItem

CListBox::SetCurSel

CListBox::SetSel

CListBox::SetCaretIndex

WM_CHARTOITEM