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. |