Visão geral dos gestos de toque do Windows

Esta seção descreve os vários gestos compatíveis com o Windows Touch.

Visão geral de gestos

O Windows Touch permite vários gestos que dão suporte a contatos únicos e múltiplos. A imagem a seguir ilustra os vários gestos com suporte no Windows 7.

ilustração mostrando os gestos aos quais o Windows Touch dá suporte no windows 7

Observação

Alguns reconhecedores são mais confiáveis na interpretação de gestos com vários contatos quando os contatos estão mais distantes uns dos outros.

Suporte herdado

Para suporte herdado, o manipulador de gestos padrão mapeia alguns gestos para mensagens do Windows que foram usadas em versões anteriores do Windows. A tabela a seguir descreve como os gestos são mapeados para mensagens herdadas.

Gesto Descrição Mensagem gerada
Panorâmica O gesto de panorâmica é mapeado para usar a roda de rolagem. WM_VSCROLL
WM_HSCROLL
Pressionar e segurar O gesto de pressionar e segurar é mapeado para clicar com o botão direito do mouse. WM_RBUTTONDOWN
WM_RBUTTONUP
Zoom O gesto de zoom dispara mensagens semelhantes a segurar a tecla CTRL e girar a roda do mouse para rolar. WM_MOUSEWHEEL com MK_CONTROL definido no wParam

Interpretando gestos de toque do Windows

Os gestos do Windows Touch podem ser interpretados pelos desenvolvedores de aplicativos manipulando a mensagem WM_GESTURE da função WndProc de um aplicativo. Depois de lidar com essa mensagem, você pode recuperar uma estrutura GESTUREINFO que descreve o gesto. A estrutura GESTUREINFO terá informações variadas que dependem do tipo de gesto.

A estrutura GESTUREINFO é recuperada passando o identificador para a estrutura de informações de gesto para a função GetGestureInfo .

Os sinalizadores a seguir indicam os vários estados dos gestos e são armazenados em dwFlags.

Nome Valor Descrição
GF_BEGIN 0x00000001 Um gesto está começando.
GF_INERTIA 0x00000002 Um gesto disparou inércia.
GF_END 0x00000004 Um gesto terminou.

Observação

A maioria dos aplicativos deve ignorar o GID_BEGIN e GID_END e passá-los para DefWindowProc. Essas mensagens são usadas pelo manipulador de gestos padrão. O comportamento do aplicativo é indefinido quando as mensagens GID_BEGIN e GID_END são consumidas por um aplicativo de terceiros.

A tabela a seguir indica os vários identificadores para gestos.

Nome Valor Descrição
GID_BEGIN 1 Um gesto está começando.
GID_END 2 Um gesto está terminando.
GID_ZOOM 3 O gesto de zoom.
GID_PAN 4 O gesto de panorâmica.
GID_ROTATE 5 O gesto de rotação.
GID_TWOFINGERTAP 6 O gesto de toque de dois dedos.
GID_PRESSANDTAP 7 Pressione e toque no gesto.

Observação

O gesto GID_PAN tem inércia interna. No final de um gesto de panorâmica, mensagens de gesto de panorâmica adicionais são criadas pelo sistema operacional.

Os membros da estrutura GESTUREINFOptsLocation e ullArguments especificam um ponto (usando a estrutura POINTS ) e informações adicionais sobre gestos, dependendo do gesto. A tabela a seguir lista os valores associados a cada tipo de gesto.

ID do gesto ullArguments ptsLocation
GID_ZOOM Indica a distância entre os dois pontos. Indica o centro do zoom.
GID_PAN Indica a distância entre os dois pontos. Indica a posição atual do painel.
GID_ROTATE Indica o ângulo de rotação se o sinalizador GF_BEGIN estiver definido. Caso contrário, essa é a alteração de ângulo desde que a rotação foi iniciada. Isso é assinado para indicar a direção da rotação. Use as macros GID_ROTATE_ANGLE_FROM_ARGUMENT e GID_ROTATE_ANGLE_TO_ARGUMENT para obter e definir o valor angular. Isso indica o centro da rotação, que é o ponto estacionário em que o objeto de destino é girado.
GID_TWOFINGERTAP Indica a distância entre os dois dedos. Indica o centro dos dois dedos.
GID_PRESSANDTAP Indica o delta entre o primeiro dedo e o segundo dedo. Esse valor é armazenado em uma estrutura POINT nos 32 bits inferiores do membro ullArguments . Indica a posição em que o primeiro dedo aparece.

Gestos de Toque do Windows