Partager via


CListBox::VKeyToItem

Appelé par l'infrastructure lorsque la fenêtre parente de la zone de liste reçoit un message d' WM_VKEYTOITEM de la zone de liste.

virtual int VKeyToItem( 
   UINT nKey, 
   UINT nIndex  
);

Paramètres

  • nKey
    Code de clé virtuelle de la clé que l'utilisateur a enfoncée. Pour une liste des codes de touche virtuelle standard, consultez le Winuser.h

  • nIndex
    La position actuelle du signe insertion de zone de liste.

Valeur de retour

Retourne à 2 pour aucune autre action, à 1 pour l'action par défaut, ou un nombre non négatif de spécifier un index d'un élément de zone de liste sur lequel exécuter l'action par défaut de la séquence de touches.

Notes

Le message d' WM_VKEYTOITEM est envoyé par la zone de liste lorsqu'il reçoit un message d' WM_KEYDOWN , mais uniquement si la zone de liste rencontre les deux éléments suivants :

Vous ne devez jamais appeler cette fonction vous-même. Remplacez cette fonction pour fournir votre propre gestion personnalisée des messages de clavier.

Vous devez retourner une valeur pour indiquer à l'infrastructure quelle action votre substitution a été exécutée. Une valeur de retour à 2 indique que l'application a traité tous les aspects de sélectionner l'élément et ne requiert aucune autre action par la zone de liste. Avant le retour à 2, vous pouvez définir la sélection ou déplacer le signe insertion ou les deux. Pour définir la sélection, l'utilisation SetCurSel ou le SetSel. Pour déplacer le signe insertion, utilisez SetCaretIndex.

Une valeur de retour à 1 indique que la zone de liste doit exécuter l'action par défaut en réponse à la séquence de touches. Retourne par défaut d'implémentation – 1.

Une valeur de retour de 0 ou un meilleur spécifie l'index d'un élément dans la zone de liste et l'indique que la zone de liste doit exécuter l'action par défaut de la séquence de touches sur l'élément donné.

Exemple

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

Configuration requise

Header: afxwin.h

Voir aussi

Référence

CListBox, classe

Graphique de la hiérarchie

CListBox::CharToItem

CListBox::SetCurSel

CListBox::SetSel

CListBox::SetCaretIndex