Partilhar via


Classe CComboBoxEx

Observação

A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.

Estende o controle de caixa de combinação fornecendo suporte para listas de imagens.

Sintaxe

class CComboBoxEx : public CComboBox

Membros

Construtores Públicos

Nome Description
CComboBoxEx::CComboBoxEx Constrói um CComboBoxEx objeto.

Métodos Públicos

Nome Description
CComboBoxEx::Create Cria a caixa combinada e prende-a ao CComboBoxEx objeto.
CComboBoxEx::CreateEx Cria uma caixa combinada com os estilos Windows estendidos especificados e anexa-a a um ComboBoxEx objeto.
CComboBoxEx::D eleteItem Remove um item de um ComboBoxEx controlo.
CComboBoxEx::GetComboBoxCtrl Recupera um ponteiro para o controlo da caixa combinada filha.
CComboBoxEx::GetEditCtrl Recupera o handle para a parte de controlo de edição de um ComboBoxEx controlo.
CComboBoxEx::GetExtendedStyle Recupera os estilos estendidos que são usados para um ComboBoxEx controlo.
CComboBoxEx::GetImageList Recupera um ponteiro para a lista de imagens atribuída a um ComboBoxEx controlo.
CComboBoxEx::GetItem Recupera informação do item para um determinado ComboBoxEx item.
CComboBoxEx::HasEditChanged Determina se o utilizador alterou o conteúdo do ComboBoxEx controlo de edição ao escrever.
CComboBoxEx::InsertItem Insere um novo item num ComboBoxEx controlo.
CComboBoxEx::SetExtendedStyle Define estilos estendidos dentro de um ComboBoxEx controlo.
CComboBoxEx::SetImageList Define uma lista de imagens para um ComboBoxEx controlo.
CComboBoxEx::SetItem Define os atributos de um item num ComboBoxEx controlo.
CComboBoxEx::SetWindowTheme Define o estilo visual do controlo da caixa de combo estendida.

Observações

Ao usar CComboBoxEx para criar controlos de combo, já não precisa de implementar o seu próprio código de desenho de imagem. Em vez disso, use CComboBoxEx para aceder a imagens de uma lista de imagens.

Suporte para Listas de Imagens

Numa caixa de combo padrão, o proprietário da caixa de combo é responsável por desenhar uma imagem criando a caixa de combo como um controlo de saque do dono. Quando usas CComboBoxEx, não precisas de definir os estilos de desenho CBS_OWNERDRAWFIXED e CBS_HASSTRINGS porque estão implícitos. Caso contrário, terá de escrever código para realizar operações de desenho. Um controlo suporta CComboBoxEx até três imagens por item: uma para um estado selecionado, uma para um estado não selecionado e uma para uma imagem sobreposta.

Estilos

CComboBoxEx suporta os estilos CBS_SIMPLE, CBS_DROPDOWN, CBS_DROPDOWNLIST e WS_CHILD. Todos os outros estilos passados quando crias a janela são ignorados pelo controlo. Depois de criada a janela, pode fornecer outros estilos de combo boxes chamando à CComboBoxEx função membro SetExtendedStyle. Com estes estilos, pode:

  • Defina as pesquisas de cadeias na lista para serem distinguíveis de maiúsculas e maiúsculas.

  • Crie um controlo de caixa de combo que use os caracteres de barra ('/'), barra inversa ('\') e ponto ('.') como delimitadores de palavras. Isto permite aos utilizadores saltar de palavra em palavra, usando o atalho de teclado CTRL+ ARROW.

  • Defina o controlo da caixa combinada para mostrar ou não mostrar uma imagem. Se não for exibida a imagem, a caixa combinada pode remover a indentação do texto que acomoda a imagem.

  • Cria um controlo de caixa combo estreito, incluindo dimensioná-lo para que encaixe a caixa de combo mais larga que contém.

Estas flags de estilo são descritas mais detalhadamente em Using CComboBoxEx.

Retenção de Itens e Atributos de Retorno

A informação dos itens, como índices de itens e imagens, valores de indentação e cadeias de texto, é armazenada na estrutura Win32 COMBOBOXEXITEM, conforme descrito no SDK do Windows. A estrutura também contém membros que correspondem a flags de callback.

Para uma discussão detalhada e conceptual, veja Utilização do CComboBoxEx.

Hierarquia de herança

CObject

CCmdTarget

CWnd

CComboBox

CComboBoxEx

Requerimentos

Cabeçalho: afxcmn.h

CComboBoxEx::CComboBoxEx

Chame esta função membro para criar um CComboBoxEx objeto.

CComboBoxEx();

CComboBoxEx::Create

Cria a caixa combinada e prende-a ao CComboBoxEx objeto.

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parâmetros

dwStyle
Especifica a combinação de estilos de combo box aplicados à combo box. Consulte as Observações abaixo para mais informações sobre estilos.

retângulo
Uma referência a um objeto CRect ou estrutura RECT , que é a posição e o tamanho da caixa combinada.

pParentWnd
Um apontador para um objeto CWnd que é a janela pai da caixa combo (normalmente um CDialog). Não pode ser NULL.

nID
Especifica o ID de controlo da caixa de combo.

Valor de retorno

Não nulo se o objeto foi criado com sucesso; caso contrário, 0.

Observações

Crie um CComboBoxEx objeto em dois passos:

  1. Chame o CComboBoxEx para construir um CComboBoxEx objeto.

  2. Chama esta função membro, que cria a caixa combinada estendida do Windows e a anexa ao CComboBoxEx objeto.

Quando chamas Create, MFC inicializa os controlos comuns.

Ao criar a caixa de combo, pode especificar qualquer um ou todos os seguintes estilos de caixas de combo:

  • CBS_SIMPLE

  • CBS_DROPDOWN

  • CBS_DROPDOWNLIST

  • CBS_AUTOHSCROLL

  • WS_CHILD

Todos os outros estilos passados quando crias a janela são ignorados. O controlo ComboBoxEx também suporta estilos estendidos que oferecem funcionalidades adicionais. Estes estilos são descritos nos estilos estendidos de controlo ComboBoxEx, no SDK do Windows. Defina estes estilos chamando SetExtendedStyle.

Se quiseres usar estilos de janelas estendidas com o teu controlo, chama CreateEx em vez de Create.

CComboBoxEx::CreateEx

Chama esta função para criar um controlo de combo box estendido (uma janela filho) e associá-lo ao CComboBoxEx objeto.

virtual BOOL CreateEx(
    DWORD dwExStyle,
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parâmetros

dwExStyle
Especifica o estilo estendido do controlo que está a ser criado. Para uma lista de estilos estendidos do Windows, consulte o parâmetro dwExStyle para CreateWindowEx no SDK do Windows.

dwStyle
O estilo do controlo da caixa de combo. Consulte Criar para uma lista de estilos.

retângulo
Uma referência a uma estrutura RECT que descreve o tamanho e a posição da janela a criar, em coordenadas cliente de pParentWnd.

pParentWnd
Um apontador para a janela que é o pai do controlo.

nID
O ID da janela criança do controlo.

Valor de retorno

Não nulo se for bem-sucedido; caso contrário, 0.

Observações

Use CreateEx em vez de Create para aplicar estilos estendidos do Windows, especificados pelo prefácio do estilo estendido do Windows WS_EX_.

CreateEx cria o controlo com os estilos estendidos do Windows especificados pelo dwExStyle. Deve definir estilos estendidos específicos para um controlo de caixa de combo estendido usando o SetExtendedStyle. Por exemplo, use CreateEx para definir estilos como WS_EX_CONTEXTHELP, mas use SetExtendedStyle para definir estilos como CBES_EX_CASESENSITIVE. Para mais informações, consulte os estilos descritos no tópico ComboBoxEx Control Extended Styles no Windows SDK.

CComboBoxEx::D eleteItem

Remove um item de um ComboBoxEx controlo.

int DeleteItem(int iIndex);

Parâmetros

iIndex
Índice em base zero do item a ser removido.

Valor de retorno

O número de itens restantes no controlo. Se o iIndex for inválido, a função devolve CB_ERR.

Observações

Esta função membro implementa a funcionalidade do CBEM_DELETEITEM de mensagens, conforme descrito no SDK do Windows. Quando chama o DeleteItem, uma mensagem WM_NOTIFY com CBEN_DELETEITEM notificação é enviada para a janela principal.

CComboBoxEx::GetComboBoxCtrl

Chama esta função membro para obter um apontador para um controlo de combo box dentro de um CComboBoxEx objeto.

CComboBox* GetComboBoxCtrl();

Valor de retorno

Um ponteiro para um CComboBox objeto.

Observações

O CComboBoxEx controlo consiste numa janela pai, que encapsula um CComboBox.

O CComboBox objeto apontado pelo valor de retorno é um objeto temporário e é destruído durante o próximo tempo de processamento ocioso.

CComboBoxEx::GetEditCtrl

Chama esta função membro para obter um ponteiro para o controlo de edição de uma caixa de combo.

CEdit* GetEditCtrl();

Valor de retorno

Um apontador para um objeto CEdit .

Observações

Um controlo usa uma caixa de CComboBoxEx edição quando é criado com o estilo CBS_DROPDOWN.

O CEdit objeto apontado pelo valor de retorno é um objeto temporário e é destruído durante o próximo tempo de processamento ocioso.

CComboBoxEx::GetExtendedStyle

Chame esta função membro para obter os estilos estendidos usados para um CComboBoxEx controlo.

DWORD GetExtendedStyle() const;

Valor de retorno

O valor DWORD que contém os estilos estendidos usados para o controlo da caixa de combo.

Observações

Consulte ComboBoxEx Control Extended Styles no Windows SDK para mais informações sobre estes estilos.

CComboBoxEx::GetImageList

Chame esta função membro para obter um apontador para a lista de imagens usada por um CComboBoxEx controlo.

CImageList* GetImageList() const;

Valor de retorno

Um apontador para um objeto CImageList . Se falhar, esta função membro devolve NULL.

Observações

O CImageList objeto apontado pelo valor de retorno é um objeto temporário e é destruído durante o próximo tempo de processamento ocioso.

CComboBoxEx::GetItem

Recupera informação do item para um determinado ComboBoxEx item.

BOOL GetItem(COMBOBOXEXITEM* pCBItem);

Parâmetros

pCBItem
Um apontador para uma estrutura COMBOBOXEXITEM que receberá a informação do item.

Valor de retorno

Diferente de zero se a operação fosse bem-sucedida; caso contrário, 0.

Observações

Esta função membro implementa a funcionalidade do CBEM_GETITEM de mensagens, conforme descrito no SDK do Windows.

CComboBoxEx::HasEditChanged

Determina se o utilizador alterou o conteúdo do ComboBoxEx controlo de edição ao escrever.

BOOL HasEditChanged();

Valor de retorno

Diferente de zero se o utilizador tiver digitado na caixa de edição do controlo; caso contrário, 0.

Observações

Esta função membro implementa a funcionalidade do CBEM_HASEDITCHANGED de mensagens, conforme descrito no SDK do Windows.

CComboBoxEx::InsertItem

Insere um novo item num ComboBoxEx controlo.

int InsertItem(const COMBOBOXEXITEM* pCBItem);

Parâmetros

pCBItem
Um apontador para uma estrutura COMBOBOXEXITEM que receberá a informação do item. Esta estrutura contém valores de flag de callback para o item.

Valor de retorno

O índice onde o novo item foi inserido, se bem-sucedido; caso contrário -1.

Observações

Quando ligar, InsertItemuma mensagem WM_NOTIFY com CBEN_INSERTITEM notificação será enviada para a janela principal.

CComboBoxEx::SetExtendedStyle

Chame esta função membro para definir os estilos estendidos usados para um controlo estendido de uma caixa combo.

DWORD SetExtendedStyle(
    DWORD dwExMask,
    DWORD dwExStyles);

Parâmetros

dwExMask
Um valor DWORD que indica quais estilos em dwExStyles devem ser afetados. Apenas os estilos estendidos no dwExExMask serão alterados. Todos os outros estilos serão mantidos como estão. Se este parâmetro for zero, então todos os estilos em dwExStyles serão afetados.

dwExStyles
Um valor DWORD que contém o controlo da caixa de combo estendeu estilos para definir para o controlo.

Valor de retorno

Um valor DWORD que contém os estilos estendidos anteriormente usados para o controlo.

Observações

Consulte ComboBoxEx Control Extended Styles no Windows SDK para mais informações sobre estes estilos.

Para criar um combo box de controlo estendido com estilos de Windows estendidos, use o CreateEx.

CComboBoxEx::SetImageList

Define uma lista de imagens para um ComboBoxEx controlo.

CImageList* SetImageList(CImageList* pImageList);

Parâmetros

pImageList
Um apontador para um CImageList objeto contendo as imagens para usar com o CComboBoxEx controlo.

Valor de retorno

Um ponteiro para um objeto CImageList contendo as imagens anteriormente usadas pelo CComboBoxEx controlo. NULL se não tiver sido definida uma lista de imagens anteriormente.

Observações

Esta função membro implementa a funcionalidade do CBEM_SETIMAGELIST de mensagens, conforme descrito no SDK do Windows. Se mudares a altura do controlo de edição por defeito, chama a função Win32 SetWindowPos para redimensionar o controlo depois de chamares SetImageList, caso contrário não será exibido corretamente.

O CImageList objeto apontado pelo valor de retorno é um objeto temporário e é destruído durante o próximo tempo de processamento ocioso.

CComboBoxEx::SetItem

Define os atributos de um item num ComboBoxEx controlo.

BOOL SetItem(const COMBOBOXEXITEM* pCBItem);

Parâmetros

pCBItem
Um apontador para uma estrutura COMBOBOXEXITEM que receberá a informação do item.

Valor de retorno

Diferente de zero se a operação fosse bem-sucedida; caso contrário, 0.

Observações

Esta função membro implementa a funcionalidade do CBEM_SETITEM de mensagens, conforme descrito no SDK do Windows.

CComboBoxEx::SetWindowTheme

Define o estilo visual do controlo da caixa de combo estendida.

HRESULT SetWindowTheme(LPCWSTR pszSubAppName);

Parâmetros

pszSubAppName
Um apontador para uma string Unicode que contém o estilo visual de combo box estendido a definir.

Valor de retorno

O valor de retorno não é utilizado.

Observações

Esta função membro emula a funcionalidade da mensagem CBEM_SETWINDOWTHEME , conforme descrito no SDK do Windows.

Consulte também

MFCIE de Exemplo MFC
Classe CComboBox
Gráfico de Hierarquia
Classe CComboBox