Controle ListView

O controle ListView que exibe uma única coluna de valores com um ícone ao lado de cada item. Ele permite que o usuário selecione uma única cadeia de caracteres ou um valor inteiro para uma propriedade de uma lista predeterminada. Os valores possíveis são lidos da tabela ListView. Você pode associar o controle a um valor inteiro ou de cadeia de caracteres inserindo o nome da propriedade na coluna Property da tabela Control.

O conteúdo do campo Texto da Tabela de Controles nunca é exibido pelo controle ListView. Em vez disso, esse campo especifica o estilo do texto a ser exibido pelo controle e contém uma descrição do controle usado pelos utilitários de revisão de tela. 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. As informações a seguir são lidas por utilitários de revisão de tela como a descrição do controle. Confira Acessibilidade.

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 Valor atual da propriedade exibida ou alterada por esse controle. Se o bit do atributo Indirect não for 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 exibir texto em leitores de tela, insira o texto na coluna Texto da Tabela de Controles. Confira Acessibilidade.
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 0x00000000 0x00010000
Itens exibidos em ordem alfabética. Itens exibidos na ordem especificada na tabela ListView.
Inclua esse bit na palavra de bit na coluna Attributes para exibir itens na ordem especificada pela coluna Ordem da tabela ListView.
FixedSize 0x00000000 0x00100000
Alonga a imagem do ícone para ajustá-lo ao controle. Corta ou centraliza a imagem de ícone no controle.
Inclua esse bit na palavra de bit da coluna Attributes da tabela Control.
IconSize 0x00000000 0x00200000
0x00400000
0x00600000
Carrega a primeira imagem. Carrega a primeira imagem 16x16.
Carrega a primeira imagem 32x32.
Carrega a primeira imagem 48x48.
Um arquivo de ícone pode conter imagens de tamanho diferente do mesmo ícone. Incluir o valor da palavra de bit apropriada na coluna Attributes da tabela Control
Se esses bits não forem definidos, o instalador vai ignorar o atributo FixedSize e a imagem será ampliada para se ajustar ao retângulo de controle. Se os bits IconSize e FixedSize forem definidos, uma imagem menor do que o controle será centralizada e uma imagem será maior do que o controle que ela será reduzida para se ajustar.

 

Comentários

Esse controle pode ser criado a partir da classe WC_LISTVIEW usando a função CreateWindowEx. Ele tem os estilos LVS_REPORT, LVS_NOCOLUMNHEADER, WS_VSCROLL, WS_HSCROLL, LVS_SHAREIMAGELISTS, LVS_SINGLESEL, LVS_SHOWSELALWAYS, WS_BORDER e WS_TABSTOP. Se o bit do estilo classificado não estiver ativado, o controle também terá o estilo LVS_SORTASCENDING.

Para compatibilidade com leitores de tela, ao criar uma caixa de diálogo com um controle ListView como o primeiro controle ativo, você deve tornar o campo de texto pertencente ao campo de edição o primeiro controle ativo na tabela Dialog. Como o texto estático não consegue focar, quando a caixa de diálogo é criada, o campo de edição terá o foco inicialmente conforme o esperado, mas isso garante que os leitores de tela mostrem as informações corretas.