Compartir a través de


CListBox::VKeyToItem

Llamado por el marco cuando la ventana primaria del cuadro de lista recibe un mensaje de WM_VKEYTOITEM listbox.

virtual int VKeyToItem( 
   UINT nKey, 
   UINT nIndex  
);

Parámetros

  • nKey
    El código de tecla virtual de la clave del usuario presionó. Para obtener una lista de códigos de tecla virtual estándar, vea Winuser.h

  • nIndex
    La posición actual del símbolo de intercalación en el cuadro de lista.

Valor devuelto

Devuelve – 2 para cualquier otra acción, – 1 para la acción predeterminada, o un número negativo para especificar un índice de un elemento del cuadro de lista en el que realizar la acción predeterminada para la presión de tecla.

Comentarios

El mensaje de WM_VKEYTOITEM es enviado por el cuadro de lista cuando recibe un mensaje de WM_KEYDOWN , pero solo si el cuadro de lista cumple ambos siguiente:

Nunca debe llamar a esta función personalmente. Invalide esta función para proporcionar dispone de control personalizado de los mensajes del teclado.

Debe devolver un valor para indicar al marco qué acción realizó la invalidación. Un valor devuelto de – 2 indica que la aplicación ha todos los aspectos de seleccionar el elemento y no requiere ninguna acción por el cuadro de lista. Antes de cambiar – 2, podría establecer la selección o mover el símbolo de intercalación o ambos. para establecer la selección, el uso SetCurSel o SetSel. para mover el símbolo de intercalación, utilice SetCaretIndex.

Un valor devuelto de – 1 indica que el cuadro de lista debe realizar la acción predeterminada en respuesta a la presión de tecla. Retornos de implementación predeterminada – 1.

Devuelve un valor de 0 o mayor especifica el índice de un elemento en el cuadro de lista e indica que el cuadro de lista debe realizar la acción predeterminada para la presión de tecla en el elemento especificado.

Ejemplo

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

Requisitos

encabezado: afxwin.h

Vea también

Referencia

CListBox Class

Gráfico de jerarquías

CListBox::CharToItem

CListBox::SetCurSel

CListBox::SetSel

CListBox::SetCaretIndex