Partilhar via


Visão geral da arquitetura

Esta visão geral da arquitetura fornece contexto para a API de Toque do Windows para Tablet e Tecnologias de Toque e explica como ela se encaixa na arquitetura maior do Windows 7.

Mensagens para entrada por toque e gestos do Windows

Os recursos de mensagens do Windows Touch são habilitados ouvindo e interpretando mensagens durante a execução. A ilustração a seguir mostra como as mensagens são geradas a partir do hardware e enviadas para aplicativos pelo Windows 7.

ilustração mostrando como o Windows 7 envia mensagens de dispositivos de multitoque para um aplicativo

Na coluna mais à esquerda da ilustração, o hardware sensível ao toque recebe entrada de um usuário. Em seguida, um driver se comunica entre o hardware e o sistema operacional. Em seguida, o sistema operacional gera uma mensagem WM_TOUCH ou WM_GESTURE que é enviada para o HWND de um aplicativo. Em seguida, o aplicativo atualiza a interface do usuário com as informações encapsuladas na mensagem.

Os aplicativos recebem gestos por padrão. A menos que uma aplicação se regista para receber mensagens de entrada do Windows Touch com a funçãoRegisterTouchWindow do, as notificações de gestos (mensagensWM_GESTURE) são criadas pelo Windows e enviadas para a janela dessa aplicação. Se uma janela do aplicativo se registrar para receber mensagens de toque, as notificações para a entrada do Windows Touch (mensagensWM_TOUCH) serão enviadas para essa janela do aplicativo. As mensagens de toque e gestos do Windows são gananciosas no sentido de que, depois que um toque é feito ou um gesto começa em uma janela do aplicativo, todas as mensagens são enviadas para esse aplicativo até que o gesto seja concluído ou o toque principal seja concluído.

Para suporte herdado, o Windows interpreta WM_GESTURE mensagens se elas estiverem borbulhadas e, em seguida, ENVIARÁ ou POSTARÁ mensagens apropriadas que são mapeadas para o gesto. Para evitar quebrar o suporte herdado, certifique-se de encaminhar WM_GESTURE mensagens usando DefWindowProc. Mais informações sobre suporte herdado podem ser encontradas na seção Visão geral dos gestos de toque do Windows.

Manipulações e Inércia

Os programadores do Windows Touch devem ser capazes de interpretar gestos de várias fontes de uma maneira que seja significativa para o gesto que está ocorrendo. A Microsoft fornece a API de manipulação para executar esses cálculos. As manipulações são essencialmente gestos com valores associados que descrevem todo o gesto. Depois de conectar os dados de entrada ao processador de manipulação, você pode recuperar informações pertinentes à ação que o usuário faz no objeto. A figura a seguir mostra uma maneira de usar manipulações.

ilustração mostrando mensagens de toque do Windows passadas para o processador de manipulação de um objeto, que lida com eventos com a interface -imanipulationevents

No canto superior esquerdo da ilustração, o usuário tocou na tela, o que cria mensagens de toque. Essas mensagens contêm uma coordenada x e uma coordenada y que são usadas para determinar o objeto que está em foco. O objeto em foco contém um processador de manipulação. A seguir, na mensagem WM_TOUCH com o sinalizador TOUCHEVENTF_UP, o objeto no foco do utilizador é selecionado, o processador de manipulação é referenciado, e a mensagem é enviada para o processador de manipulação. As mensagens WM_TOUCH subsequentes associadas a esse contato são enviadas ao processador de manipulação até que a mensagem WM_TOUCH com o sinalizador TOUCHEVENTF_UP seja recebida e o objeto selecionado seja desreferenciado. Na seção inferior direita da ilustração, um coletor de eventos de manipulação que implementa a interface _IManipulationEvents é usado para manipular os eventos de manipulação, que são gerados enquanto as mensagens de toque estão sendo criadas. O coletor de eventos pode executar atualizações na interface com base nos eventos de manipulação enquanto eles ocorrem.

Em aplicativos Windows Touch, é comum incorporar física simples para que os objetos parem suavemente, em vez de pararem abruptamente quando não estão mais sendo tocados. A Microsoft fornece a API de inércia para executar os cálculos para essa física simples para que seu aplicativo possa se comportar de maneira semelhante a outros aplicativos. Isso também economiza o esforço necessário para criar uma funcionalidade física robusta. A figura a seguir mostra como você pode usar a inércia.

ilustração mostrando mensagens de toque do Windows passadas para a interface iinertiaprocessor de um objeto, que gera eventos através da interface -imanipulationevents

Observe as semelhanças entre inércia e manipulação. A única diferença entre os dois é que, no caso de inércia, as mensagens interpretadas são entregues a um processador de inércia em vez de um processador de manipulação e o processador de inércia gera os eventos. No canto superior esquerdo da ilustração, na mensagem WM_TOUCH com o sinalizador TOUCHEVENTF_UP, utilizam-se mensagens de toque para identificar um objeto em foco que integra um processador de inércia e um processador de manipulação. As mensagens WM_TOUCH subsequentes são enviadas para o processador de manipulação e o processador de manipulação executa atualizações na interface de utilizador do aplicativo. Após a conclusão da manipulação, os valores de velocidade da manipulação são usados para configurar um processador de inércia. Como ilustrado na coluna do meio, o método Process ou ProcessTime é chamado na interface IInertiaProcessor usando um temporizador ou outro loop em um thread separado até que as chamadas indiquem que o processador terminou o processamento. Enquanto essas chamadas são feitas, os eventos de manipulação são gerados, que são manipulados por um coletor de eventos de manipulação com base na interface _IManipulationEvents. Na seção inferior direita da ilustração, esse coletor de eventos executa atualizações na interface do usuário do aplicativo com base em eventos de manipulação quando eles ocorrem por meio de manipuladores de eventos no coletor de eventos.

Guia de Programação