Partilhar via


Classe CComboBoxEx

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

Sintaxe

class CComboBoxEx : public CComboBox

Membros

Construtores públicos

Nome Descrição
CComboBoxEx::CComboBoxEx Constrói um objeto CComboBoxEx.

Métodos públicos

Nome Descrição
CComboBoxEx::Create Cria a caixa de combinação e a anexa ao objeto CComboBoxEx.
CComboBoxEx::CreateEx Cria uma caixa de combinação com os estilos estendidos especificados do Windows e o anexa a um objeto ComboBoxEx.
CComboBoxEx::DeleteItem Remove um item de um controle ComboBoxEx.
CComboBoxEx::GetComboBoxCtrl Recupera um ponteiro para o controle de caixa de combinação filho.
CComboBoxEx::GetEditCtrl Recupera o identificador na parte de controle de edição de um controle ComboBoxEx.
CComboBoxEx::GetExtendedStyle Recupera os estilos estendidos que estão em uso para um controle ComboBoxEx.
CComboBoxEx::GetImageList Recupera um ponteiro para a lista de imagens atribuída a um controle ComboBoxEx.
CComboBoxEx::GetItem Recupera informações de item para um determinado item ComboBoxEx.
CComboBoxEx::HasEditChanged Determina se o usuário alterou o conteúdo do controle de edição ComboBoxEx digitando.
CComboBoxEx::InsertItem Insere um novo item em um controle ComboBoxEx.
CComboBoxEx::SetExtendedStyle Define estilos estendidos dentro de um controle ComboBoxEx.
CComboBoxEx::SetImageList Define uma lista de imagens para um controle ComboBoxEx.
CComboBoxEx::SetItem Define os atributos de um item em um controle ComboBoxEx.
CComboBoxEx::SetWindowTheme Define o estilo visual do controle de caixa de combinação estendido.

Comentários

Usando CComboBoxEx para criar controles de caixa de combinação, você não precisa mais implementar um código próprio de desenho de imagem. Em vez disso, use CComboBoxEx para acessar imagens de uma lista de imagens.

Suporte a listas de imagens

Em uma caixa de combinação padrão, o proprietário da caixa de combinação é responsável por desenhar uma imagem criando a caixa de combinação como um controle de desenho de proprietário. Quando você usa CComboBoxEx, não é necessário definir os estilos de desenho CBS_OWNERDRAWFIXED e CBS_HASSTRINGS porque eles estão implícitos. Caso contrário, você precisa escrever código para executar operações de desenho. Um controle CComboBoxEx dá suporte a até três imagens por item: uma para um estado selecionado, uma para um estado não selecionado e outra para uma imagem de sobreposição.

Estilos

CComboBoxEx dá suporte aos estilos CBS_SIMPLE, CBS_DROPDOWN, CBS_DROPDOWNLIST e WS_CHILD. Todos os outros estilos passados quando você cria a janela são ignorados pelo controle. Depois que a janela for criada, você poderá fornecer outros estilos de caixa de combinação chamando a função membro CComboBoxEx SetExtendedStyle. Com esses estilos, você pode:

  • Definir pesquisas de cadeia de caracteres na lista para diferenciar maiúsculas de minúsculas.

  • Crier um controle de caixa de combinação que usa os caracteres barra ('/'), barra invertida ('\') e ponto ('.') como delimitadores de palavras. Isso permite que os usuários pulem de palavra em palavra, usando o atalho de teclado CTRL+ seta de direção.

  • Defina o controle de caixa de combinação para exibir ou não uma imagem. Se nenhuma imagem for exibida, a caixa de combinação poderá remover o recuo de texto que acomoda uma imagem.

  • Crie um controle de caixa de combinação estreito, incluindo dimensioná-lo para que ele recorte a caixa de combinação mais ampla que o contém.

Esses sinalizadores de estilo são descritos mais adiante em Usando CComboBoxEx.

Atributos de item de retorno de chamada e retenção e itens

Informações de item, como índices para itens e imagens, valores de recuo e cadeias de caracteres de texto, são armazenadas na estrutura Win32 COMBOBOXEXITEM, conforme descrito no SDK do Windows. A estrutura também contém membros que correspondem a sinalizadores de retorno de chamada.

Para obter uma discussão conceitual detalhada, confira Usando CComboBoxEx.

Hierarquia de herança

CObject

CCmdTarget

CWnd

CComboBox

CComboBoxEx

Requisitos

Cabeçalho: afxcmn.h

CComboBoxEx::CComboBoxEx

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

CComboBoxEx();

CComboBoxEx::Create

Cria a caixa de combinação e a anexa ao objeto CComboBoxEx.

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

Parâmetros

dwStyle
Especifica a combinação de estilos de caixa de combinação aplicados à caixa de combinação. Confira Comentários abaixo para obter mais informações sobre estilos.

rect
Uma referência a um objeto CRect ou estrutura RECT, que é a posição e o tamanho da caixa de combinação.

pParentWnd
Um ponteiro para um objeto CWnd que é a janela pai da caixa de combinação (geralmente um CDialog). Não pode ser NULL.

Nid
Especifica a ID de controle da caixa de combinação.

Valor de retorno

Diferente de zero se o objeto foi criado com êxito; caso contrário, 0.

Comentários

Construa um objeto CComboBoxEx em duas etapas:

  1. Chame CComboBoxEx para construir um objeto CComboBoxEx.

  2. Chame essa função membro, que cria a caixa de combinação estendida do Windows e a anexa ao objeto CComboBoxEx.

Quando você chama Create, o MFC inicializa os controles comuns.

Ao criar a caixa de combinação, você pode especificar qualquer um ou todos os seguintes estilos de caixa de combinação:

  • CBS_SIMPLE

  • CBS_DROPDOWN

  • CBS_DROPDOWNLIST

  • CBS_AUTOHSCROLL

  • WS_CHILD

Todos os outros estilos passados quando você cria a janela são ignorados. O controle ComboBoxEx também dá suporte a estilos estendidos que fornecem recursos adicionais. Esses estilos são descritos em estilos estendidos de controle ComboBoxEx, no SDK do Windows. Defina esses estilos chamando SetExtendedStyle.

Se você quiser usar estilos de janela estendidos com seu controle, chame CreateEx em vez de Create.

CComboBoxEx::CreateEx

Chame essa função para criar um controle de caixa de combinação estendido (uma janela filho) e associá-lo ao objeto CComboBoxEx.

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

Parâmetros

dwExStyle
Especifica o estilo estendido do controle que está sendo criado. Para obter uma lista de estilos estendidos do Windows, confira o parâmetro dwExStyle para CreateWindowEx no SDK do Windows.

dwStyle
O estilo do controle de caixa de combinação. Confira Criar para obter uma lista de estilos.

rect
Uma referência a uma estrutura RECT que descreve o tamanho e a posição da janela a ser criada, em coordenadas do cliente de pParentWnd.

pParentWnd
Um ponteiro para a janela que é pai do controle.

Nid
A ID da janela filho do controle.

Valor de retorno

Diferente de zero se tiver êxito; caso contrário, 0.

Comentários

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

CreateEx cria o controle com os estilos estendidos do Windows especificados por dwExStyle. Você precisa definir estilos estendidos específicos para um controle de caixa de combinação estendido usando SetExtendedStyle. Por exemplo, use CreateEx para definir estilos como WS_EX_CONTEXTHELP, mas use SetExtendedStyle para definir estilos como CBES_EX_CASESENSITIVE. Para obter mais informações, confira os estilos descritos em Estilos estendidos de controle ComboBoxEx no SDK do Windows.

CComboBoxEx::DeleteItem

Remove um item de um controle ComboBoxEx.

int DeleteItem(int iIndex);

Parâmetros

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

Valor de retorno

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

Comentários

Essa função membro implementa a funcionalidade da mensagem CBEM_DELETEITEM, conforme descrito no SDK do Windows. Quando você chamar DeleteItem, uma mensagem WM_NOTIFY com CBEN_DELETEITEM notificação será enviada para a janela pai.

CComboBoxEx::GetComboBoxCtrl

Chame essa função membro para obter um ponteiro para um controle de caixa de combinação dentro de um objeto CComboBoxEx.

CComboBox* GetComboBoxCtrl();

Valor de retorno

Um ponteiro para um objeto CComboBox.

Comentários

O controle CComboBoxEx consiste em uma janela pai, que encapsula um CComboBox.

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

CComboBoxEx::GetEditCtrl

Chame essa função membro para obter um ponteiro para o controle de edição de uma caixa de combinação.

CEdit* GetEditCtrl();

Valor de retorno

Um ponteiro para um objeto CEdit.

Comentários

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

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

CComboBoxEx::GetExtendedStyle

Chame essa função membro para obter os estilos estendidos usados para um controle CComboBoxEx.

DWORD GetExtendedStyle() const;

Valor de retorno

O valor DWORD que contém os estilos estendidos que são usados para o controle de caixa de combinação.

Comentários

Confira Estilos estendidos de controle ComboBoxEx no SDK do Windows para obter mais informações sobre esses estilos.

CComboBoxEx::GetImageList

Chame essa função membro para obter um ponteiro para a lista de imagens usada por um controle CComboBoxEx.

CImageList* GetImageList() const;

Valor de retorno

Um ponteiro para um objeto CImageList. Se falhar, essa função membro retornará NULL.

Comentários

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

CComboBoxEx::GetItem

Recupera informações de item para um determinado item ComboBoxEx.

BOOL GetItem(COMBOBOXEXITEM* pCBItem);

Parâmetros

pCBItem
Um ponteiro para uma estrutura COMBOBOXEXITEM que receberá as informações do item.

Valor de retorno

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

Comentários

Essa função membro implementa a funcionalidade da mensagem CBEM_GETITEM, conforme descrito no SDK do Windows.

CComboBoxEx::HasEditChanged

Determina se o usuário alterou o conteúdo do controle de edição ComboBoxEx digitando.

BOOL HasEditChanged();

Valor de retorno

Diferente de zero se o usuário digitou na caixa de edição do controle; caso contrário, 0.

Comentários

Essa função membro implementa a funcionalidade da mensagem CBEM_HASEDITCHANGED, conforme descrito no SDK do Windows.

CComboBoxEx::InsertItem

Insere um novo item em um controle ComboBoxEx.

int InsertItem(const COMBOBOXEXITEM* pCBItem);

Parâmetros

pCBItem
Um ponteiro para uma estrutura COMBOBOXEXITEM que receberá as informações do item. Essa estrutura contém valores de sinalizador de retorno de chamada para o item.

Valor de retorno

O índice no qual o novo item foi inserido se tiver êxito; caso contrário, -1.

Comentários

Quando você chamar InsertItem, uma mensagem WM_NOTIFY com a notificação CBEN_INSERTITEM será enviada para a janela pai.

CComboBoxEx::SetExtendedStyle

Chame essa função membro para definir os estilos estendidos usados para um controle estendido de caixa de combinação.

DWORD SetExtendedStyle(
    DWORD dwExMask,
    DWORD dwExStyles);

Parâmetros

dwExMask
Um valor DWORD que indica quais estilos em dwExStyles devem ser afetados. Somente os estilos estendidos em dwExMask serão alterados. Todos os outros estilos serão mantidos como se encontram. Se esse parâmetro for zero, todos os estilos em dwExStyles serão afetados.

dwExStyles
Um valor DWORD que contém os estilos estendidos de controle de caixa de combinação a serem definidos para o controle.

Valor de retorno

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

Comentários

Confira Estilos estendidos de controle ComboBoxEx no SDK do Windows para obter mais informações sobre esses estilos.

Para criar um controle estendido de caixa de combinação com estilos estendidos do Windows, use CreateEx.

CComboBoxEx::SetImageList

Define uma lista de imagens para um controle ComboBoxEx.

CImageList* SetImageList(CImageList* pImageList);

Parâmetros

pImageList
Um ponteiro para um objeto CImageList que contém as imagens a serem usadas com o controle CComboBoxEx.

Valor de retorno

Um ponteiro para um objeto CImageList que contém as imagens a serem usadas com o controle CComboBoxEx. NULL se nenhuma lista de imagens foi definida anteriormente.

Comentários

Essa função membro implementa a funcionalidade da mensagem CBEM_SETIMAGELIST, conforme descrito no SDK do Windows. Se você alterar a altura do controle de edição padrão, chame a função Win32 SetWindowPos para redimensionar seu controle depois de chamar SetImageList ou ele não será exibido corretamente.

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

CComboBoxEx::SetItem

Define os atributos de um item em um controle ComboBoxEx.

BOOL SetItem(const COMBOBOXEXITEM* pCBItem);

Parâmetros

pCBItem
Um ponteiro para uma estrutura COMBOBOXEXITEM que receberá as informações do item.

Valor de retorno

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

Comentários

Essa função membro implementa a funcionalidade da mensagem CBEM_SETITEM, conforme descrito no SDK do Windows.

CComboBoxEx::SetWindowTheme

Define o estilo visual do controle de caixa de combinação estendido.

HRESULT SetWindowTheme(LPCWSTR pszSubAppName);

Parâmetros

pszSubAppName
Um ponteiro para uma cadeia de caracteres Unicode que contém o estilo visual da caixa de combinação estendida a ser definido.

Valor de retorno

O valor retornado não é usado.

Comentários

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

Confira também

MFCIE de exemplo do MFC
Classe CComboBox
Gráfico da hierarquia
Classe CComboBox