Compartilhar via


Processamento de mensagens de List-View padrão

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

Processamento de mensagens

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

Mensagem Processamento executado
WM_CHAR Pesquisa 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 em um intervalo de tempo limite, atualmente corrigidos 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 a inicialização adicional para WM_NCCREATE. Se o estilo da janela LVS_SHAREIMAGELISTS não for especificado, o controle de exibição de lista criará o ícone e as listas de imagens de ícone pequeno neste momento.
WM_DESTROY Libera recursos alocados durante WM_CREATE.
WM_ERASEBKGND Apaga a tela de fundo da janela usando a cor atual da tela de fundo para o controle de exibição de lista. Se a cor da tela de fundo for o valor CLR_NONE, o controle de exibição de lista encaminha 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 as teclas SPACEBAR, ENTER e seta e envia um código de notificação LVN_KEYDOWN para a janela pai.
WM_KILLFOCUS Reintiza o item de lista focalizado, se houver, e envia um código de notificação NM_KILLFOCUS para a janela pai.
WM_LBUTTONDBLCLK Envia à janela pai uma NM_DBLCLK (exibição de lista) código de notificação.
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 de exibição de lista insere 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 estã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 uma NM_CLICK (exibição de lista) código de notificação.
Se a 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 a arrastar começar pela tela de fundo da janela, o controle de exibição de lista inserirá 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 chama a função DefWindowProc.
WM_NCDESTROY Libera recursos alocados pelo controle de exibição de lista. A menos que o estilo LVS_SHAREIMAGELISTS seja usado, isso inclui a exclusão das 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 não for NULL, o controle pressupõe que o valor seja um HDC e pintará usando esse contexto de dispositivo.
WM_RBUTTONDOWN Processado da mesma maneira que a mensagem de WM_LBUTTONDOWN, exceto que o controle envia um código de notificação de NM_RCLICK (exibição de lista) (em vez de NM_CLICK (exibição de lista) e um código de notificação LVN_BEGINRDRAG (em vez de LVN_BEGINDRAG). Observe que o controle processa a mensagem de WM_RBUTTONUP correspondente e não a expedi. Os aplicativos, portanto, não podem ver essa mensagem, mesmo subclasse do controle.
WM_SETFOCUS Reintiza o item de lista focalizado, se houver, e envia um código de notificação NM_SETFOCUS para a janela pai.
WM_SETFONT Salva o identificador de fonte especificado, encaminha a mensagem para a janela de cabeçalho, se houver, e reencontra usando a nova fonte.
WM_SETREDRAW Ativa ou desativa o redesenho.
WM_TIMER Começa 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 insira o 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 ícone ou exibição de í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.