Sdílet prostřednictvím


CListBox::VKeyToItem

Volat v rámci nadřazené okno seznamu obdrží WM_VKEYTOITEM zprávy ze seznamu.

virtual int VKeyToItem( 
   UINT nKey, 
   UINT nIndex  
);

Parametry

  • nKey
    Kód virtuální klávesy klíče uživatel klepl na tlačítko.Seznam kódů standardního virtuální klíče naleznete v tématu Winuser.h

  • nIndex
    Aktuální pozice pole seznamu stříška.

Vrácená hodnota

Vrátí – 2 žádné další akce – 1 pro výchozí akce nebo nezáporné číslo zadat index pole položky seznamu ve kterém chcete provést výchozí akci pro stisku klávesy.

Poznámky

WM_VKEYTOITEM Odeslána prostřednictvím seznamu po obdržení WM_KEYDOWN zprávy, ale pouze pokud seznamu splňuje obě následující:

By nikdy volání této funkce sami.Přepsat této funkce můžete poskytnout vlastní vlastní zpracování zpráv klávesnice.

Musí vracet hodnotu rámci zjistit, jakou akci provést v přepsání.Vrácená hodnota – 2 označuje, že aplikace zpracovat všechny aspekty výběrem položky a vyžaduje žádná další akce v seznamu.Před vrácením – 2, může nastavit výběr nebo přesunout stříška nebo obojí.Výběr pomocí SetCurSel nebo SetSel.Přesunout stříška, použijte SetCaretIndex.

Vrácená hodnota – 1 označuje, že seznam by měl výchozí akce v reakci na stisku klávesy.Výchozí implementace vrátí – 1.

Vrácená hodnota 0 nebo větší Určuje index položky v seznamu a označuje, že seznamu by měl provést výchozí akci pro stisknutí klávesnice na danou položku.

Příklad

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

Požadavky

Záhlaví: afxwin.h

Viz také

Referenční dokumentace

Třída CListBox

Graf hierarchie

CListBox::CharToItem

CListBox::SetCurSel

CListBox::SetSel

CListBox::SetCaretIndex