Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Receber e manipular a entrada do mouse é uma parte importante de cada aplicativo do Windows. Você pode manipular eventos de mouse para executar uma ação em seu aplicativo ou usar informações de localização do mouse para executar testes de clique ou outras ações. Além disso, você pode alterar a maneira como os controles em seu aplicativo lidam com a entrada do mouse. Este artigo descreve esses eventos do mouse em detalhes e como obter e alterar as configurações do sistema para o mouse.
No Windows Forms, a entrada do usuário é enviada para aplicativos na forma de mensagens do Windows. Uma série de métodos substituíveis processam essas mensagens no nível do aplicativo, formulário e controle. Quando esses métodos recebem mensagens do mouse, eles geram eventos que podem ser tratados para obter informações sobre a entrada do mouse. Em muitos casos, os aplicativos do Windows Forms podem processar todas as entradas do usuário simplesmente manipulando esses eventos. Em outros casos, um aplicativo pode substituir um dos métodos que processam mensagens para interceptar uma mensagem específica antes de ser recebida pelo aplicativo, formulário ou controle.
Eventos do mouse
Todos os controles do Windows Forms herdam um conjunto de eventos relacionados à entrada do mouse e do teclado. Por exemplo, um controle pode manipular o MouseClick evento para determinar a localização de um clique do mouse. Para obter mais informações sobre os eventos do mouse, consulte Usando eventos do mouse.
Localização do mouse e teste de colisão
Quando o usuário move o mouse, o sistema operacional move o ponteiro do mouse. O ponteiro do mouse contém um único pixel, chamado de ponto de acesso, que o sistema operacional rastreia e reconhece como a posição do ponteiro. Quando o usuário move o mouse ou pressiona um botão do mouse, o Control que contém o HotSpot aciona o evento apropriado do mouse.
Você pode obter a posição atual do mouse com a propriedade Location do MouseEventArgs ao manipular um evento do mouse ou usando a propriedade Position da classe Cursor. Em seguida, você pode usar informações de localização do mouse para realizar o teste de acerto e, então, executar uma ação com base na posição do mouse. A funcionalidade de teste de impacto é integrada a vários controles nos Windows Forms, como os controles ListView, TreeView, MonthCalendar e DataGridView.
O teste de colisão é útil para determinar quando seu aplicativo deve realizar uma ação específica, quando usado com o evento de mouse apropriado, como MouseHover.
Alterando as configurações de entrada do mouse
Você pode detectar e alterar a maneira como um controle lida com a entrada do mouse derivando do controle e usando os métodos GetStyle e SetStyle. O SetStyle método usa uma combinação bit a bit de ControlStyles valores para determinar se o controle tem um clique padrão, um comportamento de clique duplo ou se o controle manipula seu próprio processamento de mouse. Além disso, a SystemInformation classe inclui propriedades que descrevem os recursos do mouse e especificam como o mouse interage com o sistema operacional. A tabela a seguir resume essas propriedades.
Propriedade | Descrição |
---|---|
DoubleClickSize | Obtém as dimensões, em pixels, da área em que o usuário deve clicar duas vezes para que o sistema operacional considere os dois cliques em um clique duplo. |
DoubleClickTime | Obtém o número máximo de milissegundos que podem decorrer entre um primeiro clique e um segundo clique para que a ação do mouse seja considerada um clique duplo. |
MouseButtons | Obtém o número de botões do mouse. |
MouseButtonsSwapped | Obtém um valor que indica se as funções dos botões do mouse esquerdo e direito foram trocadas. |
MouseHoverSize | Obtém as dimensões, em pixels, do retângulo no qual o ponteiro do mouse deve permanecer pelo tempo de foco do mouse antes que uma mensagem de foco do mouse seja gerada. |
MouseHoverTime | Obtém o tempo, em milissegundos, que o ponteiro do mouse deve permanecer no retângulo de foco antes que uma mensagem de foco do mouse seja gerada. |
MousePresent | Obtém um valor que indica se um mouse está instalado. |
MouseSpeed | Obtém um valor que indica a velocidade atual do mouse, de 1 a 20. |
MouseWheelPresent | Obtém um valor que indica se um mouse com botão de rolagem está instalado. |
MouseWheelScrollDelta | Obtém o valor delta do incremento de uma única rotação da roda do mouse. |
MouseWheelScrollLines | Obtém o número de linhas a serem roladas quando a roda do mouse é girada. |
Métodos que processam mensagens de entrada do usuário
Formulários e controles têm acesso à interface IMessageFilter e a um conjunto de métodos substituíveis que processam mensagens do Windows em diferentes pontos na fila de mensagens. Todos esses métodos têm um parâmetro Message, que encapsula os detalhes de baixo nível das mensagens do Windows. Você pode implementar ou substituir esses métodos para examinar a mensagem e, em seguida, consumir a mensagem ou passá-la para o próximo consumidor na fila de mensagens. A tabela a seguir apresenta os métodos que processam todas as mensagens do Windows nos Windows Forms.
Método | Anotações |
---|---|
PreFilterMessage | Este método intercepta mensagens do Windows que estão na fila (também chamadas de postadas) no nível do aplicativo. |
PreProcessMessage | Esse método intercepta mensagens do Windows no nível de formulário e controle antes de serem processadas. |
WndProc | Esse método processa mensagens do Windows no nível de formulário e controle. |
DefWndProc | Esse método executa o processamento padrão de mensagens do Windows no nível de formulário e controle. Isso fornece a funcionalidade mínima de uma janela. |
OnNotifyMessage | Esse método intercepta mensagens no nível de formulário e controle, depois de serem processadas. O bit de estilo EnableNotifyMessage deve ser definido para que esse método seja chamado. |
Consulte também
.NET Desktop feedback