Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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 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 a inicialização adicional ao WM_NCCREATE. Se o estilo de janela LVS_SHAREIMAGELISTS não for especificado, o controle de exibição de lista 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 de exibição de lista encaminhará a mensagem para a janela pai. |
| WM_GETDLGCODE | Devolve uma combinação dos valores DLGC_WANTTAB e DLGC_WANTARROWS. |
| WM_GETFONT | Retorna o identificador para a fonte do 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 | 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 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 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 NM_CLICK (modo de exibição de lista) código de notificação. Se o arrasto 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 realizar a operação de arrasto. Se o arrasto 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çãoDefWindowProc. |
| WM_NCDESTROY | Libera recursos alocados pelo controle de exibição de lista. A menos que o estilo LVS_SHAREIMAGELISTS seja usado, isso inclui excluir as listas de imagens pequenas e em tamanho real. |
| 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 assumirá que o valor é um HDC e pintará usando esse contexto de dispositivo. |
| WM_RBUTTONDOWN | Processado da mesma forma que a mensagem WM_LBUTTONDOWN, exceto que o controle envia um NM_RCLICK (exibição de lista) código de notificação (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 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 ícone ou ícone pequeno e o estilo LVS_AUTOARRANGE for especificado, o controle de exibição de lista também organizará os itens da lista. |
| WM_WININICHANGE | Processa alterações nas métricas do sistema. |