Condividi tramite


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 CListBox

Grafico delle gerarchie

CListBox::CharToItem

CListBox::SetCurSel

CListBox::SetSel

CListBox::SetCaretIndex