Controle ComboBox

O controle ComboBox exibe uma lista suspensa de valores predefinidos e um campo de edição no qual o usuário pode inserir um valor. Para associar esse controle com uma propriedade de cadeia de caracteres ou inteiro insira o nome da propriedade na coluna Property da tabela Control.

Atributos de controle

É possível usar os atributos a seguir com esse controle. Para alterar o valor de um atributo usando um evento, assine o controle em um ControlEvent na tabela EventMapping e liste o identificador do atributo na coluna Attribute. Insira o identificador do ControlEvent na coluna Event.

Identificador de atributo Bit hexadecimal Descrição
IndirectPropertyName Esse é o nome de uma propriedade indireta associada ao controle. Se o bit do atributo Indirect estiver definido, o controle vai exibir ou alterar o valor da propriedade que tem esse nome. Se o bit do atributo Indirect estiver definido, esse nome também será o valor da propriedade listada na coluna Property da tabela Control.
Posição Posição do controle na caixa de diálogo. Insira a largura, a altura e as coordenadas do controle do canto esquerdo do controle nas colunas Width, Height, X e Y da tabela Control. Use Unidades do instalador para definir o comprimento e a distância.
PropertyName Esse é o nome da propriedade associada a esse controle. Se o bit de atributo indireto não estiver definido, o controle exibirá ou alterará o valor da propriedade que tem esse nome. Esse atributo é especificado na coluna Property da tabela Control.
PropertyValue O valor atual da propriedade exibida ou alterada por esse controle. Se o bit do atributo Indirect não estiver definido, esse será o valor de PropertyName. Se o bit do atributo Indirect estiver definido, esse será o valor de IndirectPropertyName. Se o atributo for alterado, o controle refletirá o novo valor.
Texto Para definir a fonte e o estilo da fonte de uma cadeia de texto, acrescente à cadeia de caracteres exibidos o prefixo {\style} ou {&style}. Sendo que Style é um identificador listado na coluna TextStyle da tabela TextStyle. Caso nenhum deles esteja presente, mas a propriedade DefaultUIFont seja definida como um estilo de texto válido, essa fonte será usada. Para especificar o número de caracteres que o usuário pode inserir, acrescente {n} após as especificações de fonte, onde n é um inteiro positivo.
Visível 0x00000000 0x00000001
Controle oculto. Controle visível.
Inclua esse bit na palavra de bit da coluna Attributes na tabela Control para tornar o controle visível ou oculto após a criação.
Você também pode ocultar ou mostrar um controle usando a tabela ControlCondition.
Enabled 0x00000000 0x00000002
Controle em um estado desabilitado. Controle em um estado habilitado.
Inclua esse bit na palavra de bit na coluna Attributes do Controle para habilitar o controle na criação.
Você também pode habilitar ou desabilitar um controle usando a tabela ControlCondition.
Sunken 0x00000000 0x00000004
Exibe o estilo visual padrão. Exibe o controle com uma aparência 3D em baixo-relevo.
Inclua esses bits na palavra de bit da coluna Attributes da tabela Control.
Indireto. 0x00000000 0x00000008
O controle exibe ou altera o valor da propriedade na coluna Property da tabela Control. O controle exibe ou altera o valor da propriedade que tem o Identificador listado na coluna Property da tabela Control.
Determina se a propriedade associada a esse controle é indiretamente referenciada.
Inteiro 0x00000000 0x00000010
A propriedade associada ao controle é um valor de cadeia de caracteres. A propriedade associada ao controle é um valor inteiro.
Inclua esse bit na palavra de bit da coluna Attributes da tabela Control para definir esse atributo na criação do controle.
RTLRO 0x00000000 0x00000020
O texto no controle é exibido na ordem de leitura da esquerda para a direita. O texto no controle é exibido na ordem de leitura da direita para a esquerda.
RightAligned 0x00000000 0x00000040
O texto no controle é alinhado à esquerda. O texto no controle é alinhado à direita.
LeftScroll 0x00000000 0x00000080
A barra de rolagem está localizada no lado direito do controle. A barra de rolagem está localizada no lado esquerdo do controle.
BiDi 0x000000E0 Defina esse valor para uma combinação dos atributos RTLRO, RightAligned e LeftScroll.
Sorted não definir 0x00010000
Itens exibidos em ordem alfabética. Itens exibidos na ordem especificada na tabela ListView.
O controle consulta a tabela ComboBox e, se o bit de estilo Sorted estiver definido, a ComboBox terá o estilo CBS_SORT e exibirá itens conforme especificado pela Ordering. Se esse bit de estilo não estiver definido, os itens serão exibidos em ordem alfabética.
ComboList não definido 0x00020000
Caixa de combinação com o campo de edição. A caixa de combinação com o campo de edição é substituída por um campo de texto estático.
UsersLanguage 0x00000000 0x00100000
Fontes criadas na página de código do banco de dados. Fontes criadas na página de código da interface do usuário padrão do usuário.

Comentários

Esse controle pode ser criado com base na classe COMBOBOX por meio da função CreateWindowEx. Ele tem os estilos CBS_AUTOHSCROLL, WS_TABSTOP, WS_GROUP e WS_CHILD. Se o bit ComboList estiver ativado, ele também terá o estilo CBS_DROPDOWNLIST, caso contrário, terá o estilo CBS_DROPDOWN.

É possível limitar o comprimento do texto que pode ser inserido colocando um número de 0 a 2147483646 entre chaves no início do campo Texto na tabela Control. Por exemplo, se o campo de texto começar com {80}, o comprimento da cadeia de caracteres será limitado a 80 caracteres. Se nenhum limite desse tipo for fornecido na tabela ou se for especificado 0, o comprimento será definido como o máximo possível (2147483646 caracteres). Um valor negativo ou não numérico gerará um erro.

Para compatibilidade com os leitores de tela, ao criar uma caixa de diálogo com um controle ComboBox como o primeiro controle ativo, você precisa tornar o campo de texto parte do campo de edição o primeiro controle ativo na tabela Dialog. Como o texto estático não pode ficar em foco, quando a caixa de diálogo é criada, o campo de edição terá o foco inicialmente, conforme esperado. Fazer isso garante que os leitores de tela mostrem as informações corretas.