Partilhar via


Eventos do sistema e mensagens do mouse

Seu aplicativo incorpora o design ideal e o uso da caneta eletrônica enviando mensagens do mouse do Microsoft Windows e eventos do sistema. Os aplicativos recebem ambos os conjuntos de eventos para cada movimento ou ação da caneta. Em seguida, o aplicativo escolhe o evento apropriado a ser usado com base no contexto da ação. As mensagens do mouse do Windows funcionam bem para apontar e selecionar atividades, e você deve usá-las para atividades que envolvam interação com elementos da interface do usuário (UI). Os eventos da caneta funcionam bem para aplicação de tinta em tempo real, ações da caneta e caligrafia.

Observação

Tanto os eventos da caneta quanto as mensagens do mouse são enviados para um aplicativo, independentemente de a caneta ou o mouse serem usados.

Distinguindo a entrada da caneta do mouse e do toque

Quando seu aplicativo recebe uma mensagem do mouse (como WM_LBUTTONDOWN), ele pode chamar o função GetMessageExtraInfo para avaliar se a mensagem se originou de uma caneta ou um dispositivo de mouse.

O valor retornado de GetMessageExtraInfo precisa ser verificado de máscara em relação a 0xFFFFFF00 e, em seguida, comparado com 0xFF515700. As seguintes definições podem tornar isto mais claro:

#define MI_WP_SIGNATURE 0xFF515700
#define SIGNATURE_MASK 0xFFFFFF00
#define IsPenEvent(dw) (((dw) & SIGNATURE_MASK) == MI_WP_SIGNATURE

Se a comparação for verdadeira, então esta mensagem do rato foi gerada por uma caneta Tablet PC ou ecrã táctil. Em todos os outros casos, você pode supor que essa mensagem foi gerada por um dispositivo de mouse.

Os 8 bits inferiores retornados de GetMessageExtraInfo são variáveis. Desses bits, 7 (o 7 inferior, mascarado por 0x7F) são usados para representar o ID do cursor, zero para o mouse ou um valor variável para o ID da caneta. Além disso, no Windows Vista, o oitavo bit, mascarado por 0x80, é usado para diferenciar a entrada por toque da entrada por caneta (0 = caneta, 1 = toque).

Consulte de entrada de dispositivo de ponteiro e de entrada por toque para obter mais informações.

Gestos do sistema suportados

A tabela a seguir lista os gestos do sistema atualmente incluídos no Windows XP Tablet PC Edition, detalha as ações da caneta correspondentes e os eventos do sistema e mostra como eles se relacionam com as ações tradicionais do mouse.

Gesto da caneta Ação do mouse Descrição do gesto da caneta Mensagens de eventos Mensagens do rato Comportamentos em aplicativos baseados no Windows
Toque em
Clique com o botão esquerdo do rato
Toque uma vez no ecrã com a caneta.
ISG_TAP enviados quando a caneta é levantada.
WM_LBUTTONDOWN e WM_LBUTTONUP enviados quando a caneta foi levantada.
Escolha o comando no menu ou na barra de ferramentas, execute uma ação se o comando for escolhido, defina o ponto de inserção (IP), mostre o feedback da seleção.
Toque duplo
Clique duas vezes em
Toque na tela duas vezes em rápida sucessão.
ISG_DOUBLETAP enviado no segundo toque (para baixo). ISG_TAP evento enviado no primeiro toque.
WM_LBUTTONDBLCLK enviado no segundo toque (para baixo). WM_LBUTTONDOWN e WM_LBUTTONUP enviados no primeiro toque (para cima) como para um único toque.
Selecione palavra, abra arquivo ou pasta.
Prima sem soltar
Clique com o botão direito do rato
Toque no ecrã e mantenha premido até aparecer um ícone do rato e, em seguida, levante a caneta para apresentar um menu de atalho. Um aplicativo pode optar por executar uma ação diferente de mostrar um menu do botão direito do mouse quando a caneta é levantada.
ISG_HOLDENTER enviado quando a caneta estiver parada por tempo suficiente. ISG_RIGHTTAP enviada quando a caneta é levantada e ocorre um clique com o botão direito do rato.
WM_RBUTTONDOWN e WM_RBUTTONUP enviados quando ocorre um clique com o botão direito do rato (quando a caneta é levantada).
Mostrar menu de atalho.
Espera
Clique com o botão esquerdo do rato
Toque no ecrã e mantenha premido até que o ícone do rato apareça e desapareça. É provável que os usuários façam isso quando pressionarem e segurarem acidentalmente e quiserem reverter para apenas tocar.
ISG_TAP enviados quando a caneta é levantada.
WM_LBUTTONDOWN e WM_LBUTTONUP enviados quando a caneta é levantada.
Clique com o botão esquerdo do rato durante muito tempo. Não existe equivalente de rato. Este é um fallback para quando um usuário executa pressionar-e-segurar por um longo tempo. O evento volta a ser uma torneira.
Arraste
Arraste para a esquerda
Toque na tela para selecionar o objeto a ser movido e arraste depois que o objeto for selecionado.
ISG_DRAG enviados quando o arrasto é iniciado.
WM_LBUTTONDOWN enviado quando o arrasto é iniciado, seguido por uma série de mensagens de movimentação do mouse e seguido por um evento WM_LBUTTONUP.
Arraste-selecione, como no Microsoft Word ao iniciar com um IP; selecionar várias palavras; arrastar, como ao arrastar um objeto no Windows; rolagem.
Pressione e segure seguido de um arrasto
Arraste para a direita
Toque na tela para selecionar o objeto a ser movido. Mantenha pressionado até que o ícone do mouse apareça e arraste para mover o objeto. Levante a caneta para exibir um menu de atalho.
ISG_HOLDENTER enviado quando a caneta está fora do ar há algum tempo. ISG_RIGHTDRAG enviados quando o arrasto é iniciado.
WM_RBUTTONDOWN enviado quando o arrasto é iniciado, seguido por uma série de mensagens de movimentação do mouse, seguido por um evento WM_RBUTTONUP.
Arraste, como ao arrastar um objeto ou seleção seguido por um menu de contexto.
Caneta pairar
Passe o mouse
Mantenha a caneta estável a uma pequena distância do ecrã.
ISG_HOVERENTER evento enviado inicialmente. Quando o intervalo de foco for concluído, ISG_HOVERLEAVEis enviado.
Nenhuma mensagem equivalente do mouse.
Mostrar dica de ferramenta, efeitos de sobreposição e outros comportamentos de focalização do mouse.
Agitação no ar
Mostrar Painel de Entrada do Tablet PC. Nenhum equivalente de mouse.
Mova a caneta rapidamente de um lado para o outro, segurando a ponta acima, mas dentro do alcance do ecrã.
O evento não é passado para o aplicativo.
Nenhuma mensagem equivalente do mouse.
Novo, específico para Tablet PC.

 

Especificando interações por toque e caneta

Por padrão, sua janela receberá todos os eventos de gestos do sistema e usará o modelo de interação padrão. Algumas partes deste modelo podem interferir com a sua aplicação, pelo que pode desativá-las seletivamente respondendo aode MensagensWM_TABLET_QUERYSYSTEMGESTURESTATUS no seu WndProc.