Caixas de listagem de desenho proprietário

Um aplicativo pode criar uma caixa de listagem proprietário-desenhado para assumir a responsabilidade de pintura de itens de lista. A caixa de diálogo ou janela de pai de uma caixa lista owner-drawn (o proprietário) recebe mensagens de WM_DRAWITEM quando uma parte da caixa de lista precisa ser pintadas. Uma caixa de listagem desenhado proprietário pode listar informações diferente de, ou além, seqüências de caracteres de texto.

O proprietário de uma caixa lista owner-drawn deve processo a mensagem WM_DRAWITEM. Esta mensagem é enviada sempre que uma parte da caixa de listagem deve ser redesenhada. O proprietário pode ser necessário processar outras mensagens, dependendo os estilos especificados para a caixa de listagem.

Um aplicativo pode criar uma caixa lista owner-drawn, especificando o estilo LBS_OWNERDRAWFIXED ou LBS_OWNERDRAWVARIABLE. Se todos os itens da lista na caixa de listagem têm a mesma altura, como seqüências de caracteres ou ícones, um aplicativo pode usar o estilo LBS_OWNERDRAWFIXED. Se itens de lista são de altura variável, bitmaps de tamanho diferente, por exemplo, um aplicativo pode usar o estilo LBS_OWNERDRAWVARIABLE.

O proprietário de uma caixa de listagem desenhado proprietário pode processar uma mensagem WM_MEASUREITEM para especificar as dimensões de itens de lista. Se o aplicativo cria a caixa de listagem usando o estilo LBS_OWNERDRAWFIXED, o sistema envia a mensagem WM_MEASUREITEM apenas uma vez. As dimensões especificadas pelo proprietário são usadas para todos os itens da lista. Se o estilo LBS_OWNERDRAWVARIABLE é usado, o sistema envia uma mensagem WM_MEASUREITEM para cada item de lista adicionado à caixa de listagem. O proprietário pode determinar ou definir a altura de um item da lista a qualquer momento usando a lB_GETITEMHEIGHT e lB_SETITEMHEIGHT mensagens, respectivamente.

Se as informações exibidas em uma caixa lista owner-drawn incluem texto, um aplicativo pode manter controle de texto para cada item da lista, especificando o estilo LBS_HASSTRINGS. Caixas de listagem com o estilo LBS_SORT são classificadas com base no presente texto. Se uma caixa de listagem é classificada, mas não é o estilo LBS_HASSTRINGS, o proprietário deve processo a mensagem WM_COMPAREITEM.

Em uma caixa lista owner-drawn, o proprietário deve manter controle de itens de lista que contenha informações diferente de ou em adição ao texto. Uma maneira conveniente de fazer isto é salvar o identificador das informações como dados de item usando a LB_SETITEMDATA mensagem. Para liberar objetos de dados associados a itens em uma caixa de listagem, o proprietário pode processar a mensagem WM_DELETEITEM.

Para obter um exemplo de uma caixa lista owner-drawn, consulte Criando uma caixa de listagem de Owner-Drawn.

Index