Caixa de combinação (controles do Windows)

Esta seção contém informações sobre os elementos de programação usados com caixas de combinação. Uma caixa de combinação é um tipo exclusivo de controle, definido pela classe COMBOBOX, que combina grande parte da funcionalidade de uma caixa de listagem e um controle de edição.

Visões gerais

Tópico Contents
Sobre as caixas de combinação Esta seção discute os diferentes tipos de caixas de combinação.
Combo Box Características Este documento discute os recursos da caixa de combinação.
Usando caixas de combinação Os exemplos de código nesta seção demonstram como executar tarefas associadas a caixas de combinação.

Funções

Tópico Contents
DlgDirListComboBox Substitui o conteúdo de uma caixa de combinação com os nomes dos subdiretórios e arquivos em um diretório especificado. Você pode filtrar a lista de nomes especificando um conjunto de atributos de arquivo. A lista de nomes pode incluir letras de unidade mapeadas.
DlgDirSelectComboBoxEx Recupera a seleção atual de uma caixa de combinação preenchida usando a função DlgDirListComboBox. A seleção é interpretada como uma letra de unidade, um arquivo ou um nome de diretório.
GetComboBoxInfo Recupera informações sobre a caixa de combinação especificada.

Macros

Tópico Contents
ComboBox_AddItemData Adiciona dados de item à lista em uma caixa de combinação no local especificado. Você pode usar essa macro ou enviar a mensagem CB_ADDSTRING explicitamente.
ComboBox_AddString Adiciona uma cadeia de caracteres a uma lista em uma caixa de combinação. Se a caixa de combinação não tiver o estilo CBS_SORT , a cadeia de caracteres será adicionada ao final da lista. Caso contrário, a cadeia de caracteres será inserida na lista e a lista será classificada. Você pode usar essa macro ou enviar a mensagem CB_ADDSTRING explicitamente.
ComboBox_DeleteString Exclui o item no local especificado em uma lista em uma caixa de combinação. Você pode usar essa macro ou enviar a mensagem de CB_DELETESTRING explicitamente.
ComboBox_Dir Adiciona nomes à lista exibida por uma caixa de combinação. A macro adiciona os nomes de diretórios e arquivos que correspondem a uma cadeia de caracteres especificada e a um conjunto de atributos de arquivo. Ele também pode adicionar letras de unidade mapeadas à lista em uma caixa de combinação. Você pode usar essa macro ou enviar a mensagem de CB_DIR explicitamente.
ComboBox_Enable Habilita ou desabilita um controle de caixa de combinação.
ComboBox_FindItemData Localiza o primeiro item em uma lista de caixas de combinação que tem os dados de item especificados. Você pode usar essa macro ou enviar a mensagem de CB_FINDSTRING explicitamente.
ComboBox_FindString Localiza a primeira cadeia de caracteres em uma lista de caixas de combinação que começa com a cadeia de caracteres especificada. Você pode usar essa macro ou enviar a mensagem de CB_FINDSTRING explicitamente.
ComboBox_FindStringExact Localiza a primeira cadeia de caracteres em uma lista de caixas de combinação que corresponde exatamente à cadeia de caracteres especificada, exceto que a pesquisa não diferencia maiúsculas de minúsculas. Você pode usar essa macro ou enviar a mensagem de CB_FINDSTRINGEXACT explicitamente.
ComboBox_GetCount Obtém o número de itens na caixa de listagem de uma caixa de combinação. Você pode usar essa macro ou enviar a mensagem de CB_GETCOUNT explicitamente.
ComboBox_GetCueBannerText Obtém o texto do banner de sinalização exibido no controle de edição de uma caixa de combinação. Use essa macro ou envie a mensagem de CB_GETCUEBANNER explicitamente.
ComboBox_GetCurSel Obtém o índice do item selecionado atualmente em uma caixa de combinação. Você pode usar essa macro ou enviar a mensagem de CB_GETCURSEL explicitamente.
ComboBox_GetDroppedControlRect Recupera as coordenadas de tela de uma caixa de combinação em seu estado suspenso. Você pode usar essa macro ou enviar a mensagem de CB_GETDROPPEDCONTROLRECT explicitamente.
ComboBox_GetDroppedState Verifica se a lista suspensa em um controle de caixa de combinação está visível. Você pode usar essa macro ou enviar a mensagem de CB_GETDROPPEDSTATE explicitamente.
ComboBox_GetExtendedUI Verifica se uma caixa de combinação está usando a interface do usuário (UI) padrão ou a interface do usuário estendida. Você pode usar essa macro ou enviar a mensagem de CB_GETEXTENDEDUI explicitamente.
ComboBox_GetItemData Obtém o valor definido pelo aplicativo associado ao item de lista especificado em uma caixa de combinação. Você pode usar essa macro ou enviar a mensagem CB_GETITEMDATA explicitamente.
ComboBox_GetItemHeight Recupera a altura dos itens de lista em uma caixa de combinação. Você pode usar essa macro ou enviar a mensagem CB_GETITEMHEIGHT explicitamente.
ComboBox_GetLBText Obtém uma cadeia de caracteres de uma lista em uma caixa de combinação. Você pode usar essa macro ou enviar a mensagem de CB_GETLBTEXT explicitamente.
ComboBox_GetLBTextLen Obtém o comprimento de uma cadeia de caracteres na lista em uma caixa de combinação. Você pode usar essa macro ou enviar a mensagem de CB_GETLBTEXTLEN explicitamente.
ComboBox_GetMinVisible Obtém o número mínimo de itens visíveis na lista suspensa de uma caixa de combinação.
ComboBox_GetText Recupera o texto de um controle de caixa de combinação.
ComboBox_GetTextLength Obtém o número de caracteres no texto de uma caixa de combinação.
ComboBox_InsertItemData Insere dados de item em uma lista em uma caixa de combinação no local especificado. Você pode usar essa macro ou enviar a mensagem de CB_INSERTSTRING explicitamente.
ComboBox_InsertString Adiciona uma cadeia de caracteres a uma lista em uma caixa de combinação no local especificado. Você pode usar essa macro ou enviar a mensagem de CB_INSERTSTRING explicitamente.
ComboBox_LimitText Limita o comprimento do texto que o usuário pode digitar no controle de edição de uma caixa de combinação. Você pode usar essa macro ou enviar a mensagem de CB_LIMITTEXT explicitamente.
ComboBox_ResetContent Remove todos os itens da caixa de listagem e do controle de edição de uma caixa de combinação. Você pode usar essa macro ou enviar a mensagem de CB_RESETCONTENT explicitamente.
ComboBox_SelectItemData Pesquisa uma lista em uma caixa de combinação para um item que tenha os dados de item especificados. Se um item correspondente for encontrado, o item será selecionado. Você pode usar essa macro ou enviar a mensagem de CB_SELECTSTRING explicitamente.
ComboBox_SelectString Pesquisa uma lista em uma caixa de combinação para um item que começa com os caracteres em uma cadeia de caracteres especificada. Se um item correspondente for encontrado, o item será selecionado. Você pode usar essa macro ou enviar a mensagem de CB_SELECTSTRING explicitamente.
ComboBox_SetCueBannerText Define o texto do banner de sinalização que é exibido para o controle de edição de uma caixa de combinação.
ComboBox_SetCurSel Define o item atualmente selecionado em uma caixa de combinação. Você pode usar essa macro ou enviar a mensagem CB_SETCURSEL explicitamente.
ComboBox_SetExtendedUI Seleciona a interface do usuário (UI) padrão ou a interface do usuário estendida para uma caixa de combinação que tenha o estilo CBS_DROPDOWN ou CBS_DROPDOWNLIST. Você pode usar essa macro ou enviar a mensagem de CB_SETEXTENDEDUI explicitamente.
ComboBox_SetItemData Define o valor definido pelo aplicativo associado ao item de lista especificado em uma caixa de combinação. Você pode usar essa macro ou enviar a mensagem de CB_SETITEMDATA explicitamente.
ComboBox_SetItemHeight Define a altura dos itens de lista ou o campo de seleção em uma caixa de combinação. Você pode usar essa macro ou enviar a mensagem de CB_SETITEMHEIGHT explicitamente.
ComboBox_SetMinVisible Define o número mínimo de itens visíveis na lista suspensa de uma caixa de combinação.
ComboBox_SetText Define o texto de uma caixa de combinação.
ComboBox_ShowDropdown Mostra ou oculta a lista em uma caixa de combinação. Você pode usar essa macro ou enviar a mensagem CB_SHOWDROPDOWN explicitamente.

Mensagens

Tópico Contents
CB_ADDSTRING Adiciona uma cadeia de caracteres à caixa de listagem de uma caixa de combinação. Se a caixa de combinação não tiver o estilo CBS_SORT , a cadeia de caracteres será adicionada ao final da lista. Caso contrário, a cadeia de caracteres será inserida na lista e a lista será classificada.
CB_DELETESTRING Exclui uma cadeia de caracteres na caixa de listagem de uma caixa de combinação.
CB_DIR Adiciona nomes à lista exibida pela caixa de combinação. A mensagem adiciona os nomes de diretórios e arquivos que correspondem a uma cadeia de caracteres especificada e a um conjunto de atributos de arquivo. CB_DIR também pode adicionar letras de unidade mapeadas à lista.
CB_FINDSTRING Pesquisa a caixa de listagem de uma caixa de combinação para um item que começa com os caracteres em uma cadeia de caracteres especificada.
CB_FINDSTRINGEXACT Localiza a primeira cadeia de caracteres da caixa de listagem em uma caixa de combinação que corresponde à cadeia de caracteres especificada no parâmetro lParam .
CB_GETCOMBOBOXINFO Obtém informações sobre a caixa de combinação especificada.
CB_GETCOUNT Obtém o número de itens na caixa de listagem de uma caixa de combinação.
CB_GETCUEBANNER Obtém o texto do banner de sinalização exibido no controle de edição de uma caixa de combinação. Envie essa mensagem explicitamente ou usando a macro ComboBox_GetCueBannerText.
CB_GETCURSEL Um aplicativo envia uma mensagem de CB_GETCURSEL para recuperar o índice do item selecionado no momento, se houver, na caixa de listagem de uma caixa de combinação.
CB_GETDROPPEDCONTROLRECT Um aplicativo envia uma mensagem de CB_GETDROPPEDCONTROLRECT para recuperar as coordenadas da tela de uma caixa de combinação em seu estado suspenso.
CB_GETDROPPEDSTATE Determina se a caixa de listagem de uma caixa de combinação é suspensa.
CB_GETDROPPEDWIDTH Obtém a largura mínima permitida, em pixels, da caixa de listagem de uma caixa de combinação com o estilo CBS_DROPDOWN ou CBS_DROPDOWNLIST.
CB_GETEDITSEL Obtém as posições de caractere inicial e final da seleção atual no controle de edição de uma caixa de combinação.
CB_GETEXTENDEDUI Determina se uma caixa de combinação tem a interface do usuário padrão ou a interface do usuário estendida.
CB_GETHORIZONTALEXTENT Obtém a largura, em pixels, que a caixa de listagem pode ser rolada horizontalmente (a largura rolável). Isso será aplicável somente se a caixa de listagem tiver uma barra de rolagem horizontal.
CB_GETITEMDATA Um aplicativo envia uma mensagem de CB_GETITEMDATA para uma caixa de combinação para recuperar o valor fornecido pelo aplicativo associado ao item especificado na caixa de combinação.
CB_GETITEMHEIGHT Determina a altura dos itens de lista ou o campo de seleção em uma caixa de combinação.
CB_GETLBTEXT Obtém uma cadeia de caracteres da lista de uma caixa de combinação.
CB_GETLBTEXTLEN Obtém o comprimento, em caracteres, de uma cadeia de caracteres na lista de uma caixa de combinação.
CB_GETLOCALE Obtém a localidade atual da caixa de combinação. A localidade é utilizada para determinar a ordem de classificação correta do texto exibido para caixas de combinação com o estilo CBS_SORT e o texto adicionado por meio da mensagem CB_ADDSTRING.
CB_GETMINVISIBLE Obtém o número mínimo de itens visíveis na lista suspensa de uma caixa de combinação.
CB_GETTOPINDEX Um aplicativo envia a mensagem CB_GETTOPINDEX para recuperar o índice baseado em zero do primeiro item visível na parte da caixa de listagem de uma caixa de combinação. Inicialmente, o item com índice 0 está na parte superior da caixa de listagem, mas se o conteúdo da caixa de listagem tiver sido rolado, outro item pode estar na parte superior.
CB_INITSTORAGE Um aplicativo envia a mensagem CB_INITSTORAGE antes de adicionar um grande número de itens à parte da caixa de listagem de uma caixa de combinação. Essa mensagem aloca memória para armazenar itens de caixa de listagem.
CB_INSERTSTRING Insere uma cadeia de caracteres ou dados de item na lista de uma caixa de combinação. Ao contrário da mensagem CB_ADDSTRING, a mensagem CB_INSERTSTRING não faz com que uma lista com o estilo CBS_SORTseja classificada.
CB_LIMITTEXT Limita o comprimento do texto que o usuário pode digitar no controle de edição de uma caixa de combinação.
CB_RESETCONTENT Remove todos os itens da caixa de listagem e do controle de edição de uma caixa de combinação.
CB_SELECTSTRING Pesquisa a lista de uma caixa de combinação para um item que começa com os caracteres em uma cadeia de caracteres especificada. Se um item correspondente for encontrado, ele será selecionado e copiado para o controle de edição.
CB_SETCUEBANNER Define o texto do banner de sinalização que é exibido para o controle de edição de uma caixa de combinação.
CB_SETCURSEL Um aplicativo envia uma mensagem de CB_SETCURSEL para selecionar uma cadeia de caracteres na lista de uma caixa de combinação. Se necessário, a lista rola a cadeia de caracteres para exibição. O texto no controle de edição da caixa de combinação é alterado para refletir a nova seleção, e qualquer seleção anterior na lista é removida.
CB_SETDROPPEDWIDTH Um aplicativo envia a mensagem CB_SETDROPPEDWIDTH para definir a largura máxima permitida, em pixels, da caixa de listagem de uma caixa de combinação com o estilo CBS_DROPDOWN ou CBS_DROPDOWNLIST.
CB_SETEDITSEL Um aplicativo envia uma mensagem CB_SETEDITSEL para selecionar caracteres no controle de edição de uma caixa de combinação.
CB_SETEXTENDEDUI Um aplicativo envia uma mensagem de CB_SETEXTENDEDUI para selecionar a interface do usuário padrão ou a interface do usuário estendida para uma caixa de combinação que tenha o estilo CBS_DROPDOWN ou CBS_DROPDOWNLIST.
CB_SETHORIZONTALEXTENT Um aplicativo envia a mensagem CB_SETHORIZONTALEXTENT para definir a largura, em pixels, pela qual uma caixa de listagem pode ser rolada horizontalmente (a largura rolável). Se a largura da caixa de listagem for menor que esse valor, a barra de rolagem horizontal rolará horizontalmente os itens na caixa de listagem. Se a largura da caixa de listagem for igual ou maior que esse valor, a barra de rolagem horizontal ficará oculta ou, se a caixa de combinação tiver o estilo CBS_DISABLENOSCROLL , desabilitada.
CB_SETITEMDATA Um aplicativo envia uma mensagem de CB_SETITEMDATA para definir o valor associado ao item especificado em uma caixa de combinação.
CB_SETITEMHEIGHT Um aplicativo envia uma mensagem de CB_SETITEMHEIGHT para definir a altura dos itens de lista ou o campo de seleção em uma caixa de combinação.
CB_SETLOCALE Um aplicativo envia uma mensagem de CB_SETLOCALE para definir a localidade atual da caixa de combinação. Se a caixa de combinação tiver o estilo CBS_SORT e as cadeias de caracteres forem adicionadas usando CB_ADDSTRING, a localidade de uma caixa de combinação afetará como os itens de lista serão classificados.
CB_SETMINVISIBLE Um aplicativo envia uma mensagem de CB_SETMINVISIBLE para definir o número mínimo de itens visíveis na lista suspensa de uma caixa de combinação.
CB_SETTOPINDEX Um aplicativo envia a mensagem CB_SETTOPINDEX para garantir que um item específico esteja visível na caixa de listagem de uma caixa de combinação. O sistema rola o conteúdo da caixa de listagem para que o item especificado apareça na parte superior da caixa de listagem ou o intervalo máximo de rolagem tenha sido atingido.
CB_SHOWDROPDOWN Um aplicativo envia uma mensagem de CB_SHOWDROPDOWN para mostrar ou ocultar a caixa de listagem de uma caixa de combinação que tenha o estilo CBS_DROPDOWN ou CBS_DROPDOWNLIST.

Notifications

Tópico Contents
CBN_CLOSEUP O código de notificação CBN_CLOSEUP é enviado quando a caixa de listagem de uma caixa de combinação é fechada. A janela pai da caixa de combinação recebe esse código de notificação por meio da mensagem WM_COMMAND.
CBN_DBLCLK O código de notificação CBN_DBLCLK é enviado quando o usuário clica duas vezes em uma cadeia de caracteres na caixa de listagem de uma caixa de combinação. A janela pai da caixa de combinação recebe esse código de notificação por meio da mensagem WM_COMMAND.
CBN_DROPDOWN O código de notificação CBN_DROPDOWN é enviado quando a caixa de listagem de uma caixa de combinação está prestes a ficar visível. A janela pai da caixa de combinação recebe esse código de notificação por meio da mensagem WM_COMMAND.
CBN_EDITCHANGE O código de notificação CBN_EDITCHANGE é enviado depois que o usuário executa uma ação que pode ter alterado o texto na parte de controle de edição de uma caixa de combinação. Ao contrário do código de notificação CBN_UPDATE, esse código de notificação é enviado depois que o sistema atualiza a tela. A janela pai da caixa de combinação recebe esse código de notificação por meio da mensagem WM_COMMAND.
CBN_EDITUPDATE O código de notificação CBN_EDITUPDATE é enviado quando a parte de controle de edição de uma caixa de combinação está prestes a exibir texto alterado. Esse código de notificação é enviado depois que o controle formata o texto, mas antes de exibir o texto. A janela pai da caixa de combinação recebe esse código de notificação por meio da mensagem WM_COMMAND.
CBN_ERRSPACE O código de notificação CBN_ERRSPACE é enviado quando uma caixa de combinação não pode alocar memória suficiente para atender a uma solicitação específica. A janela pai da caixa de combinação recebe esse código de notificação por meio da mensagem WM_COMMAND.
CBN_KILLFOCUS O código de notificação CBN_KILLFOCUS é enviado quando uma caixa de combinação perde o foco do teclado. A janela pai da caixa de combinação recebe esse código de notificação por meio da mensagem WM_COMMAND.
CBN_SELCHANGE O código de notificação CBN_SELCHANGE é enviado quando o usuário altera a seleção atual na caixa de listagem de uma caixa de combinação. O usuário pode alterar a seleção clicando na caixa de listagem ou usando as teclas de direção. A janela pai da caixa de combinação recebe essa notificação na forma de uma mensagem de WM_COMMAND com CBN_SELCHANGE na palavra de ordem alta do parâmetro wParam.
CBN_SELENDCANCEL O código de notificação CBN_SELENDCANCEL é enviado quando o usuário seleciona um item, mas seleciona outro controle ou fecha a caixa de diálogo. Isso indica que a seleção inicial do usuário deve ser ignorada. A janela pai da caixa de combinação recebe esse código de notificação por meio da mensagem WM_COMMAND.
CBN_SELENDOK O código de notificação CBN_SELENDOK é enviado quando o usuário seleciona um item de lista ou seleciona um item e, em seguida, fecha a lista. Indica que a seleção do usuário deve ser processada. A janela pai da caixa de combinação recebe esse código de notificação por meio da mensagem WM_COMMAND.
CBN_SETFOCUS O código de notificação CBN_SETFOCUS é enviado quando uma caixa de combinação recebe o foco do teclado. A janela pai da caixa de combinação recebe esse código de notificação por meio da mensagem WM_COMMAND.
WM_COMPAREITEM O sistema envia a mensagem WM_COMPAREITEM para determinar a posição relativa de um novo item na lista classificada de uma caixa de combinação ou caixa de listagem desenhada pelo proprietário. Sempre que o aplicativo adiciona um novo item, o sistema envia essa mensagem para o proprietário de uma caixa de combinação ou caixa de listagem criada com o estilo CBS_SORT ou LBS_SORT.
WM_DRAWITEM A mensagem WM_DRAWITEM é enviada para a janela pai de um botão, caixa de combinação, caixa de listagem ou menu desenhado pelo proprietário quando um aspecto visual do botão, caixa de combinação, caixa de listagem ou menu é alterado.
WM_MEASUREITEM A mensagem WM_MEASUREITEM é enviada para a janela do proprietário de uma caixa de combinação, caixa de listagem, controle de exibição de lista ou item de menu quando o controle ou menu é criado.

Estruturas

Tópico Contents
COMBOBOXINFO Contém informações de status da caixa de combinação.
COMPAREITEMSTRUCT Fornece os identificadores e os dados fornecidos pelo aplicativo para dois itens em uma caixa de listagem ou caixa de combinação classificada e desenhada pelo proprietário.
DRAWITEMSTRUCT Fornece informações necessárias à janela do proprietário para determinar como pintar um controle desenhado pelo proprietário ou item de menu. A janela do proprietário do controle desenhado pelo proprietário ou item de menu recebe um ponteiro para essa estrutura como o parâmetro lParam da mensagem WM_DRAWITEM.
MEASUREITEMSTRUCT Informa ao sistema as dimensões de um controle ou item de menu desenhado pelo proprietário. Isso permite que o sistema processe a interação do usuário com o controle corretamente.

Constantes

Tópico Contents
Estilos de caixa de combinação Para criar uma caixa de combinação usando a função CreateWindow ou CreateWindowEx, especifique a classe COMBOBOX, as constantes de estilo de janela apropriadas e uma combinação dos seguintes estilos de caixa de combinação.