Partilhar via


CListBox::VKeyToItem

Chamado pela estrutura quando a janela pai da caixa de lista receber uma mensagem de WM_VKEYTOITEM da caixa de listagem.

virtual int VKeyToItem( 
   UINT nKey, 
   UINT nIndex  
);

Parâmetros

  • nKey
    O código da tecla virtual de chave que o usuário pressionou. Para uma listagem de código chave virtuais padrão, consulte Winuser.h

  • nIndex
    A atual posição caret da caixa de listagem.

Valor de retorno

Retorna – 2 para nenhuma ação adicional, – 1 para a ação default, ou um número não-negativos um especificando o índice de um item da caixa de listagem para executar a ação padrão para o pressionamento de tecla.

Comentários

A mensagem de WM_VKEYTOITEM é enviada pela caixa de listagem quando receber uma mensagem de WM_KEYDOWN , mas somente se a caixa de listagem encontra ambos o seguinte:

Você nunca deve chamar essa função você mesmo. Substituir essa função para fornecer seu próprio tratamento personalizado de mensagens do teclado.

Você deve retornar um valor para informar a estrutura que ação sua sobrescrita executar. Um valor de retorno de – 2 indica que o aplicativo como todos os aspectos de selecione o item e não requer nenhuma ação adicional pela caixa de listagem. Antes de retornar – 2, você pode definir a seleção ou mover o acento circunflexo ou ambos. Para definir a seleção, o uso SetCurSel ou o SetSel. Para mover o acento circunflexo, use SetCaretIndex.

Um valor de retorno de – 1 indica que a caixa de listagem deve executar a ação padrão em resposta ao pressionamento de tecla. O retorna padrão de implementação – 1.

Um valor de retorno de 0 ou maior especifica o índice de um item na caixa de listagem e indicam que a caixa de listagem deve executar a ação default para o pressionamento de teclas no item especificado.

Exemplo

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

Cabeçalho: afxwin.h

Consulte também

Referência

Classe CListBox

Gráfico da hierarquia

CListBox::CharToItem

CListBox::SetCurSel

CListBox::SetSel

CListBox::SetCaretIndex