Visão geral do uso do mouse (Windows Forms .NET)
Receber e manipular a entrada do mouse é uma parte importante de todos os aplicativos do Windows. Você pode manipular eventos do mouse para executar uma ação em seu aplicativo ou usar informações de localização do mouse para executar testes de acerto 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 Windows. Uma série de métodos substituíveis processam essas mensagens no nível de aplicativo, formulário e controle. Quando esses métodos recebem mensagens do mouse, eles geram eventos que podem ser manipulados para obter informações sobre a entrada do mouse. Em muitos casos, os aplicativos 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 intercetar uma mensagem específica antes que ela seja recebida pelo aplicativo, formulário ou controle.
Eventos do mouse
Todos os controles do Windows Forms herdam um conjunto de eventos relacionados à entrada de mouse e teclado. Por exemplo, um controle pode manipular o evento MouseClick para determinar o local 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 gera o evento de mouse apropriado.
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 as informações de localização do mouse para realizar o teste de acerto e, em seguida, executar uma ação com base na localização do mouse. A capacidade de teste de acertos é incorporada a vários controles no Windows Forms, como os controles ListView, TreeView, MonthCalendar e DataGridView.
Usado com o evento de mouse apropriado, MouseHover por exemplo, o teste de acerto é muito útil para determinar quando seu aplicativo deve executar uma ação específica.
Alterar as definições de introdução do rato
Você pode detetar 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 método SetStyle usa uma combinação bit a bit de valores de ControlStyles para determinar se o controle terá o comportamento padrão de clique, clique duplo ou se o controle manipulará seu próprio processamento do mouse. Além disso, a classe SystemInformation 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 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 no mouse. |
MouseButtonsSwapped | Obtém um valor que indica se as funções dos botões esquerdo e direito do mouse foram trocadas. |
MouseHoverSize | Obtém as dimensões, em pixels, do retângulo dentro do qual o ponteiro do mouse deve permanecer durante o 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 precisa 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 rato com uma roda de deslocamento está ligado. |
MouseWheelScrollDelta | Obtém a quantidade do 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 da 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 no Windows Forms.
Método | Observações |
---|---|
PreFilterMessage | Esse método interceta mensagens do Windows enfileiradas (também conhecidas como postadas) no nível do aplicativo. |
PreProcessMessage | Esse método interceta 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 interceta mensagens no nível de formulário e controle, depois que elas foram processadas. O bit de estilo EnableNotifyMessage deve ser definido para que esse método seja chamado. |
Ver também
.NET Desktop feedback