Share via


Processamento de mensagens de exibição de lista padrão

Esta seção lista o processamento de mensagens de janela executado por um controle de exibição de lista.

Processamento de mensagem

A tabela a seguir descreve o processamento de mensagens de janela executado por um controle de exibição de lista.

Mensagem Processamento realizado
WM_CHAR Procura um item de exibição de lista que começa com o caractere especificado e, se o item for encontrado, seleciona e define o foco para o item. Vários caracteres recebidos dentro de um intervalo de tempo limite, atualmente fixado em um segundo, são concatenados e o controle de exibição de lista procura um item que começa com a cadeia de caracteres resultante.
WM_COMMAND Processa os códigos de notificação EN_UPDATE e EN_KILLFOCUS e encaminha todas as outras notificações de controle de edição para a janela pai.
WM_CREATE Executa inicialização adicional ao WM_NCCREATE. Se o estilo de janela LVS_SHAREIMAGELISTS não for especificado, o controle list-view criará o ícone e as listas de imagens de ícones pequenos neste ponto.
WM_DESTROY Libera recursos alocados durante WM_CREATE.
WM_ERASEBKGND Apaga o plano de fundo da janela usando a cor de plano de fundo atual para o controle de exibição de lista. Se a cor do plano de fundo for o valor CLR_NONE, o controle list-view encaminhará a mensagem para a janela pai.
WM_GETDLGCODE Retorna uma combinação dos valores DLGC_WANTTAB e DLGC_WANTARROWS.
WM_GETFONT Retorna o identificador para a fonte de rótulo atual.
WM_HSCROLL Rola o controle de exibição de lista horizontalmente.
WM_KEYDOWN Processa a barra de espaços, ENTER e as teclas de seta e envia um código de notificação LVN_KEYDOWN para a janela pai.
WM_KILLFOCUS Repinta o item de lista focado, se houver, e envia um código de notificação NM_KILLFOCUS para a janela pai.
WM_LBUTTONDBLCLK Envia à janela pai um código de notificação NM_DBLCLK (modo de exibição de lista).
WM_LBUTTONDOWN Processado de maneiras diferentes, dependendo se uma operação de clique ou arrastar está sendo iniciada. Para determinar qual operação está envolvida, o controle list-view entra em um loop de mensagem modal até que o botão seja liberado ou o mouse seja movido. No caso de um clique, o controle de exibição de lista pode alterar qual item tem o foco e quais itens são selecionados, levando em conta a posição do cursor, o estado das teclas SHIFT e CTRL e assim por diante. Em seguida, o controle de exibição de lista envia à janela pai um código de notificação NM_CLICK (modo de exibição de lista).
Se o arrastar começar sobre um item, o controle de exibição de lista selecionará e definirá o foco para o item. Em seguida, ele envia um código de notificação LVN_BEGINDRAG para a janela pai. A janela pai é responsável por realmente executar a operação de arrastar.
Se o arrastar começar sobre o plano de fundo da janela, o controle de exibição de lista entrará em outro loop de mensagem modal, permitindo que o usuário forme um retângulo arrastando o mouse. Os itens dentro do retângulo são selecionados.
WM_NCCREATE Aloca e inicializa uma estrutura de dados interna e, em seguida, chama a função DefWindowProc.
WM_NCDESTROY Libera recursos alocados pelo controle list-view. A menos que o estilo LVS_SHAREIMAGELISTS seja usado, isso inclui excluir as listas de imagens de tamanho completo e pequenas.
WM_NOTIFY Processa códigos de notificação de controle de cabeçalho.
WM_PAINT Exibe todos os itens na região de atualização. Para itens de retorno de chamada, o controle primeiro envia um código de notificação LVN_GETDISPINFO para a janela do proprietário para solicitar informações de exibição. Se o parâmetro wParam for não-NULL, o controle assume que o valor é um HDC e pinta usando esse contexto de dispositivo.
WM_RBUTTONDOWN Processado da mesma maneira que a mensagem WM_LBUTTONDOWN, exceto que o controle envia um código de notificação NM_RCLICK (modo de exibição de lista) (em vez de NM_CLICK (modo de exibição de lista)) e um código de notificação de LVN_BEGINRDRAG (em vez de LVN_BEGINDRAG). Observe que o controle processa a mensagem de WM_RBUTTONUP correspondente e não a despacha. Os aplicativos, portanto, não podem ver essa mensagem, mesmo subclassificando o controle.
WM_SETFOCUS Repinta o item de lista focado, se houver, e envia um código de notificação NM_SETFOCUS para a janela pai.
WM_SETFONT Salva a alça de fonte especificada, encaminha a mensagem para a janela de cabeçalho, se houver, e repinta usando a nova fonte.
WM_SETREDRAW Ativa ou desativa o redesenho.
WM_TIMER Inicia a edição de um rótulo de item. Se o usuário clicar no rótulo do item focado, o controle de exibição de lista definirá um temporizador em vez de entrar no modo de edição imediatamente. O temporizador possibilita que o controle de exibição de lista não entre no modo de edição se o usuário clicar duas vezes no rótulo.
WM_VSCROLL Rola o controle de exibição de lista verticalmente.
WM_WINDOWPOSCHANGED Atualiza as barras de rolagem da janela. Se o modo de exibição atual for o modo de exibição de ícone ou ícone pequeno e o estilo LVS_AUTOARRANGE for especificado, o controle de exibição de lista também organizará os itens de lista.
WM_WININICHANGE Processa alterações nas métricas do sistema.