Présentation de l’architecture
Cette vue d’ensemble de l’architecture fournit un contexte pour l’API Windows Touch pour les technologies tablettes et tactiles et explique comment elle s’intègre dans l’architecture Windows 7 plus grande.
Messages pour l’entrée et les mouvements Windows Touch
Les fonctionnalités de messagerie pour Windows Touch sont activées par l’écoute et l’interprétation des messages pendant l’exécution. L’illustration suivante montre comment les messages sont générés à partir du matériel et envoyés aux applications par Windows 7.
Dans la colonne la plus à gauche de l’illustration, le matériel tactile reçoit l’entrée d’un utilisateur. Un pilote communique ensuite entre le matériel et le système d’exploitation. Ensuite, le système d’exploitation génère un message WM_TOUCH ou WM_GESTURE qui est ensuite envoyé au HWND d’une application. L’application met ensuite à jour l’interface utilisateur en fonction des informations encapsulées dans le message.
Les applications reçoivent des mouvements par défaut. Sauf si une application s’inscrit pour les messages d’entrée Windows Touch avec la fonction RegisterTouchWindow, les notifications pour les mouvements (WM_GESTURE messages) sont créées par Windows et envoyées à cette fenêtre d’application. Si une fenêtre d’application s’inscrit pour recevoir des messages tactiles, des notifications pour l’entrée Windows Touch (WM_TOUCH messages) sont envoyées à cette fenêtre d’application. Windows Touch et les messages de mouvement sont gourmands dans le sens où une fois qu’une touche tactile est effectuée ou qu’un mouvement commence sur une fenêtre d’application, tous les messages sont envoyés à cette application jusqu’à ce que le mouvement se termine ou que la touche principale soit terminée.
Pour la prise en charge héritée, Windows interprète les messages WM_GESTURE s’ils sont en bulles, puis envoie ou POST des messages appropriés qui correspondent au mouvement. Pour éviter d’interrompre la prise en charge héritée, veillez à transférer WM_GESTURE messages à l’aide de DefWindowProc. Pour plus d’informations sur la prise en charge héritée, consultez la section Vue d’ensemble des mouvements tactiles Windows.
Manipulations et inertie
Les programmeurs Windows Touch doivent être en mesure d’interpréter les mouvements provenant de plusieurs sources d’une manière significative pour le mouvement en cours. Microsoft fournit l’API de manipulation pour effectuer ces calculs. Les manipulations sont essentiellement des mouvements avec des valeurs associées qui décrivent l’ensemble du mouvement. Après avoir connecté les données d’entrée au processeur de manipulation, vous pouvez récupérer les informations pertinentes pour l’action que l’utilisateur effectue sur l’objet. La figure suivante montre une façon d’utiliser les manipulations.
En haut à gauche de l’illustration, l’utilisateur a touché l’écran, ce qui crée des messages tactiles. Ces messages contiennent une coordonnée x et une coordonnée y qui sont utilisées pour déterminer l’objet qui est en focus. L’objet en focus contient un processeur de manipulation. Ensuite, sur le message WM_TOUCH avec l’indicateur TOUCHEVENTF_UP , l’objet dans le focus de l’utilisateur est sélectionné, le processeur de manipulation est référencé et le message est envoyé au processeur de manipulation. Les messages WM_TOUCH suivants associés à ce contact sont envoyés au processeur de manipulation jusqu’à ce que le message WM_TOUCH avec l’indicateur TOUCHEVENTF_UP soit reçu et que l’objet sélectionné soit déréférencé. Dans la section inférieure droite de l’illustration, un récepteur d’événements de manipulation qui implémente l’interface _IManipulationEvents est utilisé pour gérer les événements de manipulation, qui sont déclenchés pendant la création des messages tactiles. Le récepteur d’événements peut effectuer des mises à jour de l’interface en fonction des événements de manipulation pendant qu’ils se produisent.
Dans les applications Windows Touch, il est courant d’incorporer une physique simple afin que les objets s’arrêtent en douceur, plutôt que de s’arrêter brusquement lorsqu’ils ne sont plus touchés. Microsoft fournit l’API Inertie pour effectuer les calculs de ces physiques simples afin que votre application puisse se comporter de la même manière que d’autres applications. Cela vous permet également d’économiser l’effort nécessaire pour créer des fonctionnalités physiques robustes. La figure suivante montre comment utiliser l’inertie.
Notez les similitudes entre l’inertie et la manipulation. La seule différence entre les deux est que dans le cas de l’inertie, les messages interprétés sont remis à un processeur d’inertie plutôt qu’à un processeur de manipulation et que le processeur d’inertie déclenche les événements. En haut à gauche de l’illustration, sur le message WM_TOUCH avec l’indicateur TOUCHEVENTF_UP , les messages tactiles sont utilisés pour identifier un objet en focus qui contient un processeur d’inertie et un processeur de manipulation. Les messages WM_TOUCH suivants sont envoyés au processeur de manipulation et le processeur de manipulation effectue des mises à jour de l’interface utilisateur de l’application. Une fois la manipulation terminée, les valeurs de vitesse de la manipulation sont utilisées pour configurer un processeur d’inertie. Comme illustré dans la colonne centrale, la méthode Process ou ProcessTime est appelée sur l’interface IInertiaProcessor à l’aide d’un minuteur ou d’une autre boucle dans un thread distinct jusqu’à ce que les appels indiquent que le traitement du processeur est terminé. Pendant que ces appels sont effectués, les événements de manipulation sont déclenchés, qui sont gérés par un récepteur d’événements de manipulation basé sur l’interface _IManipulationEvents . Dans la section inférieure droite de l’illustration, ce récepteur d’événements effectue ensuite des mises à jour de l’interface utilisateur de l’application en fonction des événements de manipulation lorsqu’ils se produisent via des gestionnaires d’événements dans le récepteur d’événements.
Rubriques connexes