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.
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. |