CListBox::VKeyToItem

Chiamato dal framework quando la finestra padre della casella di riepilogo riceve un messaggio WM_VKEYTOITEM dalla casella di riepilogo.

virtual int VKeyToItem(
   UINT nKey,
   UINT nIndex 
);

Parametri

  • nKey
    Il codice tasto virtuale chiave che l'utente ha raggiunto.Per un elenco dei codici tasto virtuali standard, vedere Winuser.h

  • nIndex
    La posizione corrente del cursore nella casella di riepilogo.

Valore restituito

Restituisce e 2 per richieste altre azioni, – 1 per l'azione predefinita, o un numero non negativo specificare un indice di un elemento della casella di riepilogo in cui eseguire l'azione predefinita per la sequenza di tasti.

Note

Il messaggio WM_VKEYTOITEM viene inviato dalla casella di riepilogo quando riceve un messaggio WM_KEYDOWN, ma solo se la casella di riepilogo soddisfa entrambe le operazioni seguenti:

È consigliabile chiamare mai questa funzione manualmente.Eseguire l'override di questa funzione per fornire la gestione personalizzata dei messaggi della tastiera.

È necessario restituire un valore per indicare al framework di azione l'override ha eseguito.Restituito un valore pari a 2 indica che l'applicazione ha gestito tutti gli aspetti di selezionare l'elemento e non richiedono l'esecuzione di altre azioni dalla casella di riepilogo.Prima di restituire – 2, è possibile impostare la selezione o spostare il cursore o entrambi.Per impostare la selezione, l'utilizzo SetCurSel o SetSel.Spostare il cursore, utilizzare SetCaretIndex.

Restituito un valore pari a 1 indica che la casella di riepilogo deve eseguire l'azione predefinita in risposta alla sequenza di tasti. L'implementazione predefinita restituisce – 1.

Un valore restituito di 0 o maggiore specifica un indice di un elemento della casella di riepilogo e indica che nella casella di riepilogo deve eseguire l'azione predefinita per la sequenza di tasti sull'elemento specificato.

Esempio

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

Requisiti

Header: afxwin.h

Vedere anche

Riferimenti

Classe di CListBox

Grafico della gerarchia

CListBox::CharToItem

CListBox::SetCurSel

CListBox::SetSel

CListBox::SetCaretIndex