Partilhar via


Classe CComboBox

Fornece a funcionalidade de uma caixa de combinação do Windows.

class CComboBox : public CWnd

Comentários

Uma caixa de combinação consiste em um lista caixa combinada com um controle estático ou o controle de edição.O lista-parte de caixa do controle pode ser exibida em todas as ocasiões ou pode soltar apenas pressionada quando o usuário seleciona drop - down seta ao lado do controle.

O item selecionado no momento (se houver) na lista caixa é exibida no estático ou controle de edição.Além disso, se a caixa de combinação tiver o estilo de lista suspensa, o usuário pode digitar o caractere inicial de um dos itens na lista e a caixa de listagem, caso esteja visível, irá realçar o próximo item com o caractere inicial.

A tabela a seguir compara a caixa de combinação três estilos.

Style

Quando a caixa de listagem está visível?

Controle estático ou edição?

Simples

Sempre

Editar

Drop-down

Quando solta para baixo

Editar

Na lista suspensa

Quando solta para baixo

Estático

Você pode criar um CComboBox objeto de um modelo de caixa de diálogo ou diretamente em seu código. Em ambos os casos, primeiro chame o construtor CComboBox para construir o CComboBox objeto; em seguida, chame o Criar função de membro para criar o controle e anexá-lo à CComboBox objeto.

Se você quiser controlar mensagens de notificação do Windows enviadas por uma caixa de combinação para seu pai (geralmente uma classe derivada de CDialog), adicionar uma função de membro de manipulador de mensagens e entrada de MAP da mensagem para a classe pai para cada mensagem.

Cada entrada de MAP da mensagem possui o seguinte formato:

ON_Notification( id**,** memberFxn )

em que id Especifica a ID da janela filho do controle caixa de combinação enviando a notificação e memberFxn é o nome da função de membro pai que você tenha escrito para manipular a notificação.

Protótipo de função do pai é o seguinte:

afx_msg void memberFxn**(** );

Não pode ser prevista a ordem em que algumas notificações irão ser enviadas.Em particular, um CBN_SELCHANGE notificação pode ocorrer antes ou após um CBN_CLOSEUP notificação.

Entradas de MAP de mensagens possíveis são:

  • ON_CBN_CLOSEUP   (Windows 3.1 e posterior). O lista caixa de uma caixa de combinação foi fechada.Essa mensagem de notificação não é enviada para uma caixa de combinação que tenha o CBS_SIMPLE estilo.

  • ON_CBN_DBLCLK   O usuário clica duas vezes em uma seqüência de caracteres na lista caixa de uma caixa de combinação.Essa mensagem de notificação é enviada somente para uma caixa de combinação com o CBS_SIMPLE estilo.Para uma caixa de combinação com o CBS_DROPDOWN or CBS_DROPDOWN lista estilo, um clicar duplo não pode ocorrer porque um único clicar oculta o lista caixa.

  • ON_CBN_DROPDOWN   O lista caixa de uma caixa de combinação está prestes a lista suspensa (se tornar visível).Essa mensagem de notificação pode ocorrer apenas de uma caixa de combinação com o CBS_DROPDOWN or CBS_DROPDOWNLIST estilo.

  • ON_CBN_EDITCHANGE   O usuário executou uma ação que pode ter alterado o texto no controle de edição de uma caixa de combinação.Ao contrário de CBN_EDITUPDATE mensagem, essa mensagem é enviada após a tela de atualizações do Windows.Não é enviado se a caixa de combinação com o CBS_DROPDOWNLIST estilo.

  • ON_CBN_EDITUPDATE   A parte de controle de edição de uma caixa de combinação é Sobre para texto de exibição alterada.Essa mensagem de notificação será enviada depois que o controle tiver formatado o texto mas antes que exibe o texto.Não é enviado se a caixa de combinação com o CBS_DROPDOWNLIST estilo.

  • ON_CBN_ERRSPACE   A caixa de combinação não é possível alocar memória suficiente para atender a uma solicitação específica.

  • ON_CBN_SELENDCANCEL   (Windows 3.1 e posterior). Indica que a seleção do usuário deve ser cancelada.O usuário clica em um item e, em seguida, clica em outra janela ou controle para ocultar o lista caixa de uma caixa de combinação.Essa mensagem de notificação será enviada antes do CBN_CLOSEUP mensagem de notificação para indicar que a seleção do usuário deve ser ignorada.The CBN_SELENDCANCEL or CBN_SELENDOK mensagem de notificação é enviada, mesmo que o CBN_CLOSEUP mensagem de notificação de não será enviada (sistema autônomo no caso de uma caixa de combinação com o CBS_SIMPLE estilo).

  • ON_CBN_SELENDOK   O usuário seleciona um item e, em seguida, pressiona a tecla ENTER ou clica a tecla de direção para baixo para ocultar caixa de listagem de uma caixa de combinação.Essa mensagem de notificação será enviada antes do CBN_CLOSEUP mensagem para indicar que a seleção do usuário deve ser considerada válida.The CBN_SELENDCANCEL or CBN_SELENDOK mensagem de notificação é enviada, mesmo que o CBN_CLOSEUP mensagem de notificação de não será enviada (sistema autônomo no caso de uma caixa de combinação com o CBS_SIMPLE estilo).

  • ON_CBN_KILLFOCUS   A caixa de combinação está perdendo o foco de entrada.

  • ON_CBN_SELCHANGE   A seleção na caixa de listagem de uma caixa de combinação é prestes a ser alterada sistema autônomo resultado do usuário, clicando na caixa de lista ou alterar a seleção usando sistema autônomo teclas de seta.Ao processar essa mensagem, o texto no controle de edição da caixa de combinação só pode ser recuperado por meio de GetLBText ou outra função semelhante. GetWindowText não pode ser usado.

  • ON_CBN_SETFOCUS   A caixa de combinação recebe o foco de entrada.

Se você criar um CComboBox objeto dentro de uma caixa de diálogo (por meio de um recurso de caixa de diálogo), o CComboBox objeto é destruído automaticamente quando o usuário fecha a caixa de diálogo.

Se você incorporar um CComboBox objeto dentro de outra janela de objeto, você não precisa destruí-lo. Se você criar o CComboBox objeto na pilha, ele será destruído automaticamente. Se você criar o CComboBox objeto no heap usando o novo função, você deve chamar Excluir no objeto para destruí-lo quando a caixa de combinação do Windows é destruída.

Observação:   Se você desejar manipular WM_KEYDOWN e WM_CHAR mensagens, você tem a subclasse edição da caixa de combinação e controles de caixa de listagem, derivar classes a partir do CEdit e CListBox, e adicione manipuladores para essas mensagens para as classes derivadas. Para obter mais informações, consulte http://suporte.Microsoft.com/padrão.aspx?scid=kb;en-US;Q174667 and CWnd::SubclassWindow.

Requisitos

Cabeçalho: afxwin.h

Consulte também

Tarefas

Exemplo CTRLBARS: Ilustra barras de Controlarar Personalizar

Referência

Classe CWnd

Gráfico de hierarquia

Classe CWnd

Classe CButton

Classe CEdit

Classe CListBox

Classe CScrollBar

Classe CStatic

Classe CDialog

Outros recursos

CComboBox membros