Zeitachse von Mausnachrichten und Systemereignissen
Wenn eine bestimmte Aktion ausgeführt wird, werden die Systemereignisse (mit dem Präfix ISG_) gesendet und von der Anwendung fast sofort empfangen. Die Mausnachrichten (mit dem Präfix WM_) werden gesendet, wenn die Aktion ausgeführt wird und von der Anwendung empfangen wird, nachdem das Ereignis vom Microsoft Windows-Messagingdienst verarbeitet werden muss. Darüber hinaus sind CursorDown- und CursorUp- Stiftereignisse, die von der Stifthardware empfangen werden. Sie werden gesendet, wenn der Tabletstift den Bildschirm berührt und vom Bildschirm angehoben wird.
Stiftereignisse und Mausnachrichten werden nicht synchronisiert. Es gibt keine Garantie dafür, dass entsprechende Mausnachrichten und Stiftereignisse in einer bestimmten Reihenfolge auftreten. Das folgende Diagramm zeigt die erwartete, aber nicht immer vorhersehbare Abfolge von System- und Mausereignissen, die gesendet werden. Beachten Sie im Diagramm, dass die Mausereignisse verzögert werden, wenn Systemgestenereignisse erkannt werden.
Wichtige Überlegungen zur Implementierung
Beachten Sie beim Entwickeln von Mausmeldungen und Systemereignissen Folgendes:
- Sowohl Stiftereignisse als auch Mausnachrichten werden an eine Anwendung gesendet, unabhängig davon, ob der Stift oder die Maus verwendet wird.
- Wenn Ihre Anwendung sowohl auf Stift- als auch Mausnachrichten lauscht, ist es schwierig, die Beziehung der Nachrichten und damit das spätere Verhalten vorherzusagen. Stiftereignisse und Mausnachrichten werden nicht synchronisiert. Es gibt keine Garantie dafür, dass entsprechende Mausnachrichten und Stiftereignisse (z. B. WM_LBUTTONDOWN und ISG_TAPoder WM_LBUTTONDBLCLK und ISG_DBLTAP) in einer bestimmten Reihenfolge auftreten. Die Beziehung zwischen diesen Nachrichten ist komplex.
- Es wird empfohlen, Maus- und Stiftereignisse im gleichen Anwendungsfeature nicht zu mischen und abzugleichen. Ein Anwendungsfeature, das auf CursorDown- und MouseUp- reagiert, verhält sich möglicherweise nicht wie erwartet oder mit zukünftigen Versionen des Tablet PC SDK.
- Wenn der Benutzer den Tablet-Stift vor Abschluss der Sequenz ziehen soll, entsprechen die gesendeten Ereignisse dem linken Ziehen. Wenn der Ziehvorgang z. B. gestartet wird, werden ISG_DRAG und WM_LBUTTONDOWN gesendet. Wenn der Stift schließlich angehoben wird, werden CursorUp- und WM_LBUTTONUP gesendet. Das Systemgestenereignis wird möglicherweise nicht sofort ausgelöst, da es bestimmen muss, welche Art von Ereignis auftritt.
- Ein Doppeltippen mit einem Tabletstift ist häufig weniger genau als ein Doppelklick mit einer Maus. Dies kommt aus der naturgemäßen Ausführung eines Doppeltippens mit einem Tabletstift. Da der Benutzer den Tabletstift anheben muss, um einen Doppeltipp durchzuführen, ist die Zeit zwischen Koppeln häufig größer als die entsprechende Zeit zwischen Klicks eines Doppelklicks. Außerdem ist es wahrscheinlich, dass die beiden Tippen des Tabletstifts bei Bildschirmkoordinaten auftreten, die weiter auseinander liegen als bei den beiden Mausklicks. Um dies zu berücksichtigen, verfügt Windows XP Tablet PC Edition über Einstellungen für den zeitlichen und räumlichen Abstand zwischen den beiden Tippen eines Doppeltippens, die von den Mauseinstellungen für einen Doppelklick getrennt sind. Diese Einstellungen können in den Tablet- und Stifteinstellungen in der Systemsteuerung angepasst werden.
Aufgrund dieser Überlegungen sollten Anwendungen nur eine Gruppe von Nachrichten statt beides abhören. Wenn Sie eine stiftfähige Anwendung erstellen, lauschen Sie nur auf das System und die Stiftnachrichten. Diese Nachrichten sind vorhersehbar und funktionieren gut mit dem Tablet-Stift. Wenn Sie eine Anwendung erstellen, die nicht mit Stift aktiviert ist, lauschen Sie nur auf die Mausnachrichten.