Compartilhar via


Entrada do mouse

Esta seção descreve como o sistema fornece entrada do mouse para seu aplicativo e como o aplicativo recebe e processa essa entrada.

Nesta seção

Tópico Descrição
Sobre a entrada do mouse
Este tópico discute a entrada do mouse.
Usando a entrada do mouse
Esta seção aborda tarefas associadas à entrada do mouse.
Referência de entrada do mouse

Funções

Nome Descrição
_Trackmouseevent Posta mensagens quando o ponteiro do mouse sai de uma janela ou passa o mouse sobre uma janela por um período especificado. Essa função chama TrackMouseEvent se ela existir, caso contrário, ela a emula.
BlockInput Impede que eventos de entrada de teclado e mouse atinjam aplicativos.
DragDetect Captura o mouse e rastreia seu movimento até que o usuário libere o botão esquerdo, pressione a tecla ESC ou mova o mouse para fora do retângulo de arrastar ao redor do ponto especificado. A largura e a altura do retângulo de arrastar são especificados pelos valores SM_CXDRAG e SM_CYDRAG retornados pela função GetSystemMetrics .
EnableMouseInPointer Permite que o mouse atue como um dispositivo apontador.
Enablewindow Habilita ou desabilita a entrada de mouse e teclado para a janela ou controle especificado. Quando a entrada é desabilitada, a janela não recebe entrada, como cliques e pressionamentos de teclas do mouse. Quando a entrada está habilitada, a janela recebe todas as entradas.
GetCapture Recupera um identificador para a janela (se houver) que capturou o mouse. Somente uma janela de cada vez pode capturar o mouse; essa janela recebe a entrada do mouse se o cursor está ou não dentro de suas bordas.
GetDoubleClickTime Recupera o tempo de clique duplo atual para o mouse. Um clique duplo é uma série de dois cliques do botão do mouse, o segundo ocorrendo dentro de um tempo especificado após o primeiro. O tempo de clique duplo é o número máximo de milissegundos que pode ocorrer entre o primeiro e o segundo clique de um clique duplo.
GetMouseMovePointsEx Recupera um histórico de até 64 coordenadas anteriores do mouse ou da caneta.
IsWindowEnabled Determina se a janela especificada está habilitada para entrada de mouse e teclado.
Releasecapture Libera a captura do mouse de uma janela no thread atual e restaura o processamento normal de entrada do mouse. Uma janela que capturou o mouse recebe toda a entrada do mouse, independentemente da posição do cursor, exceto quando um botão do mouse é clicado enquanto o ponto quente do cursor está na janela de outro thread.
Sendinput Sintetiza pressionamentos de teclas, movimentos do mouse e cliques de botão.
Setcapture Define a captura do mouse para a janela especificada que pertence ao thread atual. SetCapture captura a entrada do mouse quando o mouse está sobre a janela de captura ou quando o botão do mouse foi pressionado enquanto o mouse estava sobre a janela de captura e o botão ainda está inativo. Somente uma janela de cada vez pode capturar o mouse.
Se o cursor do mouse estiver sobre uma janela criada por outro thread, o sistema direcionará a entrada do mouse para a janela especificada somente se um botão do mouse estiver inativo.
SetDoubleClickTime Define o tempo de clique duplo para o mouse. Um clique duplo é uma série de dois cliques de um botão do mouse, o segundo ocorrendo dentro de um tempo especificado após o primeiro. O tempo de clique duplo é o número máximo de milissegundos que podem ocorrer entre o primeiro e o segundo cliques de um clique duplo.
SwapMouseButton Inverte ou restaura o significado dos botões esquerdo e direito do mouse.
Trackmouseevent Posta mensagens quando o ponteiro do mouse sai de uma janela ou passa o mouse sobre uma janela por um período especificado.

A função a seguir está obsoleta.

Função Descrição
mouse_event Sintetiza os cliques de botão e movimento do mouse.

Notificações

Nome Descrição
WM_APPCOMMAND Notifica uma janela de que o usuário gerou um evento de comando do aplicativo, por exemplo, clicando em um botão de comando do aplicativo usando o mouse ou digitando uma tecla de comando do aplicativo no teclado.
WM_CAPTURECHANGED Enviado para a janela que está perdendo a captura do mouse.
WM_LBUTTONDBLCLK Postado quando o usuário clica duas vezes no botão esquerdo do mouse enquanto o cursor está na área do cliente de uma janela. Se o mouse não for capturado, a mensagem será postada na janela abaixo do cursor. Caso contrário, a mensagem é postada na janela que capturou o mouse.
WM_LBUTTONDOWN Postado quando o usuário pressiona o botão esquerdo do mouse enquanto o cursor está na área do cliente de uma janela. Se o mouse não for capturado, a mensagem será postada na janela abaixo do cursor. Caso contrário, a mensagem é postada na janela que capturou o mouse.
WM_LBUTTONUP Postado quando o usuário libera o botão esquerdo do mouse enquanto o cursor está na área do cliente de uma janela. Se o mouse não for capturado, a mensagem será postada na janela abaixo do cursor. Caso contrário, a mensagem é postada na janela que capturou o mouse.
WM_MBUTTONDBLCLK Postado quando o usuário clica duas vezes no botão do mouse do meio enquanto o cursor está na área do cliente de uma janela. Se o mouse não for capturado, a mensagem será postada na janela abaixo do cursor. Caso contrário, a mensagem é postada na janela que capturou o mouse.
WM_MBUTTONDOWN Postado quando o usuário pressiona o botão do mouse do meio enquanto o cursor está na área do cliente de uma janela. Se o mouse não for capturado, a mensagem será postada na janela abaixo do cursor. Caso contrário, a mensagem é postada na janela que capturou o mouse.
WM_MBUTTONUP Postado quando o usuário libera o botão do mouse do meio enquanto o cursor está na área do cliente de uma janela. Se o mouse não for capturado, a mensagem será postada na janela abaixo do cursor. Caso contrário, a mensagem é postada na janela que capturou o mouse.
WM_MOUSEACTIVATE Enviado quando o cursor está em uma janela inativa e o usuário pressiona um botão do mouse. A janela pai receberá essa mensagem somente se a janela filho a passar para a função DefWindowProc .
WM_MOUSEHOVER Postado em uma janela quando o cursor passa o mouse sobre a área do cliente da janela pelo período de tempo especificado em uma chamada anterior a TrackMouseEvent.
WM_MOUSEHWHEEL Enviado para a janela de foco quando a roda de rolagem horizontal do mouse é inclinada ou girada. A funçãoDefWindowProcpropaga a mensagem para o pai da janela. Não deve haver encaminhamento interno da mensagem, pois DefWindowProc a propaga até encontrar uma janela que a processe.
WM_MOUSELEAVE Postado em uma janela quando o cursor deixa a área do cliente da janela especificada em uma chamada anterior para TrackMouseEvent.
WM_MOUSEMOVE Postado em uma janela quando o cursor se move. Se o mouse não for capturado, a mensagem será postada na janela que contém o cursor. Caso contrário, a mensagem é postada na janela que capturou o mouse.
WM_MOUSEWHEEL Enviado para a janela de foco quando a roda do mouse é girada. A função DefWindowProc propaga a mensagem para o pai da janela. Não deve haver encaminhamento interno da mensagem, pois DefWindowProc a propaga até encontrar uma janela que a processe.
WM_NCHITTEST Enviado para uma janela para determinar qual parte da janela corresponde a uma coordenada de tela específica. Isso pode acontecer, por exemplo, quando o cursor se move, quando um botão do mouse é pressionado ou liberado, ou em resposta a uma chamada para uma função como WindowFromPoint. Se o mouse não for capturado, a mensagem será enviada para a janela abaixo do cursor. Caso contrário, a mensagem será enviada para a janela que capturou o mouse.
WM_NCLBUTTONDBLCLK Postado quando o usuário clica duas vezes no botão esquerdo do mouse enquanto o cursor está dentro da área não cliente de uma janela. Esta mensagem é postada na janela que contém o cursor. Se uma janela tiver capturado o mouse, essa mensagem não será postada.
WM_NCLBUTTONDOWN Postado quando o usuário pressiona o botão esquerdo do mouse enquanto o cursor está dentro da área não cliente de uma janela. Esta mensagem é postada na janela que contém o cursor. Se uma janela tiver capturado o mouse, essa mensagem não será postada.
WM_NCLBUTTONUP Postado quando o usuário libera o botão esquerdo do mouse enquanto o cursor está dentro da área não cliente de uma janela. Esta mensagem é postada na janela que contém o cursor. Se uma janela tiver capturado o mouse, essa mensagem não será postada.
WM_NCMBUTTONDBLCLK Postado quando o usuário clica duas vezes no botão do meio do mouse enquanto o cursor está dentro da área não cliente de uma janela. Esta mensagem é postada na janela que contém o cursor. Se uma janela tiver capturado o mouse, essa mensagem não será postada.
WM_NCMBUTTONDOWN Postado quando o usuário pressiona o botão do meio do mouse enquanto o cursor está dentro da área não cliente de uma janela. Esta mensagem é postada na janela que contém o cursor. Se uma janela tiver capturado o mouse, essa mensagem não será postada.
WM_NCMBUTTONUP Postado quando o usuário libera o botão do meio do mouse enquanto o cursor está dentro da área não cliente de uma janela. Esta mensagem é postada na janela que contém o cursor. Se uma janela tiver capturado o mouse, essa mensagem não será postada.
WM_NCMOUSEHOVER Postado em uma janela quando o cursor passa o mouse sobre a área não cliente da janela pelo período de tempo especificado em uma chamada anterior aTrackMouseEvent.
WM_NCMOUSELEAVE Postado em uma janela quando o cursor deixa a área não cliente da janela especificada em uma chamada anterior paraTrackMouseEvent.
WM_NCMOUSEMOVE Postado em uma janela quando o cursor é movido dentro da área não cliente da janela. Esta mensagem é postada na janela que contém o cursor. Se uma janela tiver capturado o mouse, essa mensagem não será postada.
WM_NCRBUTTONDBLCLK Postado quando o usuário clica duas vezes no botão direito do mouse enquanto o cursor está dentro da área não cliente de uma janela. Esta mensagem é postada na janela que contém o cursor. Se uma janela tiver capturado o mouse, essa mensagem não será postada.
WM_NCRBUTTONDOWN Postado quando o usuário pressiona o botão direito do mouse enquanto o cursor está dentro da área não cliente de uma janela. Esta mensagem é postada na janela que contém o cursor. Se uma janela tiver capturado o mouse, essa mensagem não será postada.
WM_NCRBUTTONUP Postado quando o usuário libera o botão direito do mouse enquanto o cursor está dentro da área não cliente de uma janela. Esta mensagem é postada na janela que contém o cursor. Se uma janela tiver capturado o mouse, essa mensagem não será postada.
WM_NCXBUTTONDBLCLK Postado quando o usuário clica duas vezes no primeiro ou segundo botão X enquanto o cursor está na área não cliente de uma janela. Esta mensagem é postada na janela que contém o cursor. Se uma janela tiver capturado o mouse, essa mensagem não será postada.
WM_NCXBUTTONDOWN Postado quando o usuário pressiona o primeiro ou segundo botão X enquanto o cursor está na área não cliente de uma janela. Esta mensagem é postada na janela que contém o cursor. Se uma janela tiver capturado o mouse, essa mensagem não será postada.
WM_NCXBUTTONUP Postado quando o usuário libera o primeiro ou segundo botão X enquanto o cursor está na área não cliente de uma janela. Esta mensagem é postada na janela que contém o cursor. Se uma janela tiver capturado o mouse, essa mensagem não será postada.
WM_RBUTTONDBLCLK Postado quando o usuário clica duas vezes no botão direito do mouse enquanto o cursor está na área do cliente de uma janela. Se o mouse não for capturado, a mensagem será postada na janela abaixo do cursor. Caso contrário, a mensagem é postada na janela que capturou o mouse.
WM_RBUTTONDOWN Postado quando o usuário pressiona o botão direito do mouse enquanto o cursor está na área do cliente de uma janela. Se o mouse não for capturado, a mensagem será postada na janela abaixo do cursor. Caso contrário, a mensagem é postada na janela que capturou o mouse.
WM_RBUTTONUP Postado quando o usuário libera o botão direito do mouse enquanto o cursor está na área do cliente de uma janela. Se o mouse não for capturado, a mensagem será postada na janela abaixo do cursor. Caso contrário, a mensagem é postada na janela que capturou o mouse.
WM_XBUTTONDBLCLK Postado quando o usuário clica duas vezes no primeiro ou segundo botão X enquanto o cursor está na área do cliente de uma janela. Se o mouse não for capturado, a mensagem será postada na janela abaixo do cursor. Caso contrário, a mensagem é postada na janela que capturou o mouse.
WM_XBUTTONDOWN Postado quando o usuário pressiona o primeiro ou segundo botão X enquanto o cursor está na área do cliente de uma janela. Se o mouse não for capturado, a mensagem será postada na janela abaixo do cursor. Caso contrário, a mensagem é postada na janela que capturou o mouse.
WM_XBUTTONUP Postado quando o usuário libera o primeiro ou segundo botão X enquanto o cursor está na área do cliente de uma janela. Se o mouse não for capturado, a mensagem será postada na janela abaixo do cursor. Caso contrário, a mensagem é postada na janela que capturou o mouse.

Estruturas

Nome Descrição
HARDWAREINPUT Contém informações sobre uma mensagem simulada gerada por um dispositivo de entrada diferente de um teclado ou mouse.
ENTRADA Contém informações usadas para sintetizar eventos de entrada, como pressionamentos de tecla, movimento do mouse e cliques do mouse.
LASTINPUTINFO Contém a hora da última entrada.
MOUSEINPUT Contém informações sobre um evento simulado do mouse.
MOUSEMOVEPOINT Contém informações sobre a localização do mouse nas coordenadas da tela.
TRACKMOUSEEVENT Usada pela função TrackMouseEvent para acompanhar quando o ponteiro do mouse sai de uma janela ou passa o mouse sobre uma janela por um período de tempo especificado.