Entrada por mouse

Esta seção descreve como o sistema fornece a 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 deixa uma janela ou passa o mouse sobre uma janela por um período de tempo especificado. Essa função chama TrackMouseEvent se existir, caso contrário, ela a emula.
BlockInput Impede que eventos de entrada de teclado e mouse cheguem aos 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 apontando.
Enablewindow Habilita ou desabilita a entrada de mouse e teclado na janela ou controle especificado. Quando a entrada é desabilitada, a janela não recebe entradas, como cliques e pressionamentos de tecla. Quando a entrada é habilitada, a janela recebe todas as entradas.
GetCapture Recupera um identificador na 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 atual de clique duplo 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 podem 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 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 de entrada normal 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 de acesso do cursor está na janela de outro thread.
Sendinput Sintetiza teclas, movimentos do mouse e cliques no botão.
Setcapture Define a captura do mouse para a janela especificada pertencente 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á desligado. Apenas 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 do mouse esquerdo e direito.
Trackmouseevent Posta mensagens quando o ponteiro do mouse deixa uma janela ou passa o mouse sobre uma janela por um período de tempo 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 a 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 é 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ãocliente 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ãocliente 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ãocliente 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 mouse do meio enquanto o cursor está dentro da área nãocliente 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 mouse do meio enquanto o cursor está dentro da área nãocliente 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 mouse do meio enquanto o cursor está dentro da área nãocliente 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ãocliente 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ãocliente da janela especificada em uma chamada anterior paraTrackMouseEvent.
WM_NCMOUSEMOVE Postado em uma janela quando o cursor é movido dentro da área nãocliente 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ãocliente 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ãocliente 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ãocliente 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ãocliente 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ãocliente 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ãocliente 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 o 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 será 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 Usado pela função TrackMouseEvent para acompanhar quando o ponteiro do mouse deixa uma janela ou passa o mouse sobre uma janela por um período especificado.