Événements système et messages de souris
Votre application intègre une conception et une utilisation optimales du stylet de tablette en envoyant des messages de souris microsoft Windows et des événements système. Les applications reçoivent les deux ensembles d’événements pour chaque mouvement ou action de stylet. L’application choisit ensuite l’événement approprié à utiliser en fonction du contexte de l’action. Les messages de souris Windows fonctionnent bien pour pointer et sélectionner des activités, et vous devez les utiliser pour les activités qui impliquent l’interaction avec les éléments d’interface utilisateur. Les événements de stylet fonctionnent bien pour l’application manuscrite en temps réel, les actions de stylet et l’écriture manuscrite.
Note
Les événements de stylet et les messages de souris sont envoyés à une application, que le stylet ou la souris soit utilisé.
Distinction entre l’entrée de stylet de la souris et du toucher
Lorsque votre application reçoit un message de souris (tel que WM_LBUTTONDOWN), elle peut appeler la fonction GetMessageExtraInfo pour déterminer si le message provient d’un stylet ou d’un appareil de souris.
La valeur retournée par GetMessageExtraInfo doit être cochée par masque sur 0xFFFFFF00, puis comparée à 0xFF515700. Les définitions suivantes peuvent rendre cela plus clair :
#define MI_WP_SIGNATURE 0xFF515700
#define SIGNATURE_MASK 0xFFFFFF00
#define IsPenEvent(dw) (((dw) & SIGNATURE_MASK) == MI_WP_SIGNATURE
Si la comparaison est vraie, ce message de souris a été généré par un stylet tablet PC ou un écran tactile. Dans tous les autres cas, vous pouvez supposer que ce message a été généré par un appareil de souris.
Les 8 bits inférieurs retournés par GetMessageExtraInfo sont variables. De ces bits, 7 (les 7 inférieurs, masqués par 0x7F) sont utilisés pour représenter l’ID de curseur, zéro pour la souris ou une valeur variable pour l’ID de stylet. En outre, dans Windows Vista, le huitième bit, masqué par 0x80, est utilisé pour différencier l’entrée tactile de l’entrée de stylet (0 = stylet, 1 = tactile).
Pour plus d’informations, consultez d’entrée d’appareil pointeur et d’entrée tactile.
Mouvements système pris en charge
Le tableau suivant répertorie les mouvements système actuellement inclus dans Windows XP Tablet PC Edition, détaille les actions de stylet et les événements système correspondants, et montre comment ils sont liés aux actions traditionnelles de la souris.
Mouvement de stylet | Action de la souris | Description du mouvement du stylet | Messages d’événement | Messages de souris | Comportements dans les applications Windows |
---|---|---|---|---|---|
Robinet |
Cliquez avec le bouton gauche |
Appuyez une fois sur l’écran avec le stylet. |
ISG_TAP envoyée lorsque le stylet est levé. |
WM_LBUTTONDOWN et WM_LBUTTONUP envoyées lors de l’élévation du stylet. |
Choisissez une commande dans le menu ou la barre d’outils, effectuez une action si la commande choisie, définissez le point d’insertion (IP), affichez les commentaires de sélection. |
Appuyez deux fois |
Double-cliquez sur |
Appuyez deux fois sur l’écran en succession rapide. |
ISG_DOUBLETAP envoyé lors du deuxième appui (bas). ISG_TAP événement envoyé lors du premier appui. |
WM_LBUTTONDBLCLK envoyée lors du deuxième appui (bas). WM_LBUTTONDOWN et WM_LBUTTONUP envoyées lors du premier appui (haut) comme pour un seul appui. |
Sélectionnez word, ouvrez un fichier ou un dossier. |
Appuyez longuement |
Cliquer avec le bouton droit |
Appuyez sur l’écran et maintenez la souris enfoncée jusqu’à ce qu’une icône de souris apparaisse, puis liftez le stylet pour afficher un menu contextuel. Une application peut choisir d’effectuer une action différente de l’affichage d’un menu contextuel lorsque le stylet est levé. |
ISG_HOLDENTER envoyée lorsque le stylet a été assez long. ISG_RIGHTTAP envoyée lorsque le stylet est levé et qu’un clic droit se produit. |
WM_RBUTTONDOWN et WM_RBUTTONUP envoyée quand un clic droit se produit (lorsque le stylet est levé). |
Afficher le menu contextuel. |
Mise en attente |
Cliquez avec le bouton gauche |
Appuyez sur l’écran et maintenez la souris enfoncée jusqu’à ce que l’icône de la souris apparaisse et disparaisse. Les utilisateurs sont susceptibles de le faire lorsqu’ils appuient sur un accident et tiennent enfoncé et veulent revenir à appuyer simplement. |
ISG_TAP envoyée lorsque le stylet est levé. |
WM_LBUTTONDOWN et WM_LBUTTONUP envoyées lorsque le stylet est levé. |
Cliquez avec le bouton gauche pendant une longue période. Aucun équivalent de souris n’existe. Il s’agit d’un secours pour lequel un utilisateur effectue une pression prolongée pendant une longue période. L’événement revient à être un appui. |
Traîner |
Glisser vers la gauche |
Appuyez sur l’écran pour sélectionner l’objet à déplacer, puis faites glisser une fois l’objet sélectionné. |
ISG_DRAG envoyée lors du démarrage du glissement. |
WM_LBUTTONDOWN envoyée lors du démarrage du glissement, suivie d’une série de messages de déplacement de souris, puis d’un événement de WM_LBUTTONUP. |
Faites glisser la sélection, comme dans Microsoft Word lors du démarrage d’une adresse IP ; sélectionnez plusieurs mots ; faites glisser, comme lors du glissement d’un objet dans Windows ; défilement. |
Appuyez et maintenez la touche enfoncée suivie d’un glisser-déplacer |
Glisser vers la droite |
Appuyez sur l’écran pour sélectionner l’objet à déplacer. Maintenez la touche enfoncée jusqu’à ce que l’icône de la souris apparaisse, puis faites glisser pour déplacer l’objet. Liftez le stylet pour afficher un menu contextuel. |
ISG_HOLDENTER envoyée lorsque le stylet a été arrêté depuis un certain temps. ISG_RIGHTDRAG envoyée lors du démarrage du glissement. |
WM_RBUTTONDOWN envoyée lors du démarrage du glissement, suivie d’une série de messages de déplacement de souris, suivie d’un événement de WM_RBUTTONUP. |
Faites glisser, comme lors du glissement d’un objet ou d’une sélection suivi d’un menu contextuel. |
Pointage du stylet |
Pointage de la souris |
Maintenez le stylet stable à une petite distance de l’écran. |
ISG_HOVERENTER événement envoyé initialement. Lorsque l’intervalle de pointage est terminé, ISG_HOVERLEAVEis envoyé. |
Aucun message de souris équivalent. |
Afficher les effets d’info-bulle, de substitution et d’autres comportements de pointage de souris. |
Secouer dans l’air |
Afficher panneau d’entrée tablette PC. Aucun équivalent de souris. |
Déplacez rapidement le stylet de côté en tenant la pointe ci-dessus, mais dans la plage de l’écran. |
L’événement n’est pas passé à l’application. |
Aucun message de souris équivalent. |
Nouveau, spécifique à Tablet PC. |
Spécification de stylets et d’interactions tactiles
Par défaut, votre fenêtre reçoit tous les événements de mouvement système et utilise le modèle d’interaction par défaut. Certains éléments de ce modèle peuvent interférer avec votre application. Vous pouvez donc les désactiver de manière sélective en répondant à l'WM_TABLET_QUERYSYSTEMGESTURESTATUS Message dans votre WndProc.