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
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:
Chame CComboBoxEx para construir um objeto
CComboBoxEx
.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