Chronologie des messages de souris et des événements système
Lorsqu’une action donnée est effectuée, les événements système (précédés de ISG_) sont envoyés et reçus presque instantanément par l’application. Les messages de souris (précédés de WM_) sont envoyés lorsque l’action est effectuée et sont reçus par l’application après le temps nécessaire au traitement de l’événement par le service de messagerie Microsoft Windows. En outre, CursorDown et CursorUp sont des événements de stylet qui sont reçus du matériel du stylet. Ils sont envoyés lorsque le stylet de tablette touche l’écran et lorsqu’il est soulevé de l’écran, respectivement.
Les événements de stylet et les messages de souris ne sont pas synchronisés. Il n’existe aucune garantie que les messages de souris et les événements de stylet correspondants se produisent dans un ordre particulier. Le graphique suivant montre la séquence attendue, mais pas toujours prévisible, des événements système et de souris qui sont envoyés. Notez dans le graphique que les événements de souris sont retardés lorsque des événements de mouvement système sont détectés.
Considérations importantes relatives à l’implémentation
Tenez compte des éléments suivants lors du développement de messages de souris et d’événements système :
- Les événements de stylet et les messages de souris sont envoyés à une application, que le stylet ou la souris soit utilisé.
- Si votre application écoute à la fois les messages du stylet et de la souris, il est difficile de prédire la relation des messages et, par conséquent, le comportement éventuel. Les événements de stylet et les messages de souris ne sont pas synchronisés. Il n’est pas garanti que les messages de souris et les événements de stylet correspondants (tels que WM_LBUTTONDOWN et ISG_TAP, ou WM_LBUTTONDBLCLK et ISG_DBLTAP) se produisent dans un ordre particulier. La relation entre ces messages est complexe.
- Il est recommandé de ne pas mélanger et mettre en correspondance les événements de souris et de stylet dans la même fonctionnalité d’application. Par exemple, une fonctionnalité d’application qui répond à CursorDown et MouseUp peut ne pas se comporter comme prévu maintenant ou avec les versions futures du Kit de développement logiciel (SDK) Tablet PC.
- Pour la séquence d’événements de conservation, si l’utilisateur fait glisser le stylet de tablette avant la fin de la séquence, les événements envoyés correspondent à un glisser vers la gauche. Par exemple, lorsque le glisser-glisser démarre, ISG_DRAG et WM_LBUTTONDOWN sont envoyés. Lorsque le stylet est finalement levé, CursorUp et WM_LBUTTONUP sont envoyés. L’événement de mouvement système peut ne pas se déclencher immédiatement, car il doit déterminer le type d’événement qui se produit.
- Un double-appui avec un stylet de tablette est souvent moins précis qu’un double-clic avec une souris. Cela provient de la nature inhérente de l’exécution d’un double appui avec un stylet de tablette. Étant donné que l’utilisateur doit lever le stylet de la tablette pour effectuer un double appui, le temps entre les appuis est souvent supérieur à la durée correspondante entre les clics d’un double-clic. En outre, il est probable que les deux appuis du stylet de tablette se produisent à des coordonnées d’écran qui sont plus éloignées de celles des deux clics de la souris. Pour ce faire, Windows XP Édition Tablet PC dispose de paramètres pour la distance temporelle et spatiale entre les deux appuis d’un double-appui qui sont distincts des paramètres de la souris pour un double-clic. Ces paramètres peuvent être ajustés dans Paramètres de tablette et de stylet dans Panneau de configuration.
En raison de ces considérations, les applications ne doivent écouter qu’un seul ensemble de messages plutôt que les deux. Si vous créez une application avec stylet, écoutez uniquement les messages système et de stylet. Ces messages sont prévisibles et fonctionnent bien avec le stylet de tablette. Si vous créez une application qui n’est pas activée pour le stylet, écoutez uniquement les messages de la souris.