CListBox::CharToItem

Chamada pela estrutura quando o lista pai janela da caixa recebe um WM_CHARTOITEM mensagem do lista caixa.

virtual int CharToItem(
   UINT nKey,
   UINT nIndex 
);

Parâmetros

  • nKey
    O código ANSI do caractere digitado pelo usuário.

  • nIndex
    A posição corrente do lista-caixa cursor.

Valor de retorno

Retorna – 1 ou – 2 para nenhuma outra ação ou um número para especificar um índice de um item de caixa de listagem na qual deseja executar a ação padrão para o pressionamento de tecla não-negativo.A implementação padrão retorna – 1.

Comentários

The WM_CHARTOITEM mensagem é enviada com o lista caixa quando ele recebe um WM_CHAR mensagem, mas apenas se o lista caixa atende a todos esses critérios:

  • É uma caixa de listagem de desenho proprietário.

  • Não tem o LBS_HASSTRINGS estilo conjunto.

  • Tem pelo menos um item.

Nunca devem telefonar isso funcionar por conta própria.Substitua esta função para fornecer sua própria manipulação personalizada das mensagens de teclado.

Na sua substituir, você deve retornar um valor para informar a estrutura que ação executada.Um valor retornado de – 1 ou – 2 indica que você tratados todos os aspectos de selecionando o item e não requer mais nenhuma ação na caixa da lista.Antes de retornar – 1 ou – 2, você pode conjunto a seleção ou mover o cursor ou ambos.Para conjunto a seleção, use SetCurSel or SetSel.Para mover o cursor, use SetCaretIndex.

Um valor de 0 ou maior retorno Especifica o índice de um item na lista caixa e indica que o lista caixa deve executar a ação padrão para o pressionamento de tecla no item específico.

Exemplo

// CMyODListBox is my owner-drawn list box derived from CListBox. This 
// example moves the caret down one item on a numeric key and up one item 
// on an alphabetic 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::CharToItem(UINT nChar, UINT nIndex)
{
   // On a numeric key, move the caret up one item.
   if (isdigit(nChar) && (nIndex > 0))
   {
      SetCaretIndex(nIndex-1);
   }
   // On an alphabetic key, move the caret down one item.
   else if (isalpha(nChar) && (nIndex < (UINT)GetCount()))
   {
      SetCaretIndex(nIndex+1);
   }

   // Do not perform any default processing.
   return -1;
}

Requisitos

Cabeçalho: afxwin.h

Consulte também

Referência

Classe CListBox

Gráfico de hierarquia

CListBox::VKeyToItem

CListBox::SetCurSel

CListBox::SetSel

CListBox::SetCaretIndex

WM_CHARTOITEM

Outros recursos

CListBox membros