Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Ihre Anwendung umfasst optimales Design und die Verwendung des Tabletstifts, indem sowohl Microsoft Windows-Mausnachrichten als auch Systemereignisse gesendet werden. Anwendungen empfangen beide Ereignissätze für jede Stiftbewegung oder -aktion. Die Anwendung wählt dann das entsprechende Ereignis aus, das basierend auf dem Kontext der Aktion verwendet werden soll. Windows-Mausnachrichten funktionieren gut zum Zeigen und Auswählen von Aktivitäten, und Sie sollten sie für Aktivitäten verwenden, die interaktionen mit Ui-Elementen (User Interface) umfassen. Stiftereignisse funktionieren gut für Echtzeit-Freihandanwendung, Stiftaktionen und Handschrift.
Anmerkung
Sowohl Stiftereignisse als auch Mausnachrichten werden an eine Anwendung gesendet, unabhängig davon, ob der Stift oder die Maus verwendet wird.
Unterscheiden der Stifteingabe von Maus und Touch
Wenn Ihre Anwendung eine Mausnachricht empfängt (z. B. WM_LBUTTONDOWN), ruft sie möglicherweise die GetMessageExtraInfo--Funktion auf, um auszuwerten, ob die Nachricht von einem Stift oder mausgerät stammt.
Der von GetMessageExtraInfo zurückgegebene Wert muss für 0xFFFFFF00 maskiert und dann mit 0xFF515700 verglichen werden. Die folgenden Definitionen können dies deutlicher machen:
#define MI_WP_SIGNATURE 0xFF515700
#define SIGNATURE_MASK 0xFFFFFF00
#define IsPenEvent(dw) (((dw) & SIGNATURE_MASK) == MI_WP_SIGNATURE
Wenn der Vergleich wahr ist, wurde diese Mausnachricht von einem Tablet PC-Stift oder Touchscreen generiert. In allen anderen Fällen können Sie davon ausgehen, dass diese Nachricht von einem Mausgerät generiert wurde.
Die unteren 8 Bits, die von GetMessageExtraInfo- zurückgegeben werden, sind variable. Von diesen Bits werden 7 (die untere 7, maskiert von 0x7F) verwendet, um die Cursor-ID, Null für die Maus oder einen Variablenwert für die Stift-ID darzustellen. Darüber hinaus wird in Windows Vista das achte Bit, maskiert von 0x80, verwendet, um die Toucheingabe von stifteingaben zu unterscheiden (0 = Stift, 1 = Touch).
Weitere Informationen finden Sie unter für Zeigergeräte und toucheingaben.
Unterstützte Systemgesten
In der folgenden Tabelle sind systemgesten aufgeführt, die derzeit in der Windows XP Tablet PC Edition enthalten sind, die entsprechenden Stiftaktionen und Systemereignisse und zeigt, wie sie sich auf herkömmliche Mausaktionen beziehen.
Stiftgeste | Mausaktion | Beschreibung der Stiftgeste | Ereignismeldungen | Mausnachrichten | Verhalten in Windows-basierten Anwendungen |
---|---|---|---|---|---|
Klopfen |
Linksklick |
Tippen Sie einmal mit dem Stift auf den Bildschirm. |
ISG_TAP gesendet, wenn der Stift angehoben wird. |
WM_LBUTTONDOWN und WM_LBUTTONUP gesendet, wenn der Stift angehoben wurde. |
Wählen Sie den Befehl aus dem Menü oder der Symbolleiste aus, ergreifen Sie Maßnahmen, wenn der Befehl ausgewählt ist, legen Sie die Einfügemarke (IP) fest, zeigen Sie Auswahlfeedback an. |
Doppeltippen |
Doppelklicken |
Tippen Sie zweimal hintereinander auf den Bildschirm. |
ISG_DOUBLETAP beim zweiten Tippen (nach unten) gesendet. ISG_TAP Ereignis, das beim ersten Tippen gesendet wurde. |
WM_LBUTTONDBLCLK beim zweiten Tippen (nach unten) gesendet. WM_LBUTTONDOWN und WM_LBUTTONUP beim ersten Tippen (oben) als einzelnes Tippen gesendet. |
Wählen Sie "Wort" aus, öffnen Sie die Datei oder den Ordner. |
Drücken und Halten |
Klicken Sie mit der rechten Maustaste |
Tippen Sie auf den Bildschirm, halten Sie ihn gedrückt, bis ein Maussymbol angezeigt wird, und heben Sie dann den Stift an, um ein Kontextmenü anzuzeigen. Eine Anwendung kann eine andere Aktion ausführen als das Anzeigen eines Kontextmenüs, wenn der Stift angehoben wird. |
ISG_HOLDENTER gesendet, wenn der Stift lang genug ist. ISG_RIGHTTAP gesendet, wenn der Stift angehoben und mit der rechten Maustaste geklickt wird. |
WM_RBUTTONDOWN und WM_RBUTTONUP gesendet, wenn mit der rechten Maustaste geklickt wird (wenn der Stift angehoben wird). |
Kontextmenü anzeigen. |
Halten durch |
Linksklick |
Tippen Sie auf den Bildschirm, und halten Sie sie gedrückt, bis das Maussymbol angezeigt und ausgeblendet wird. Benutzer tun dies wahrscheinlich, wenn sie versehentlich gedrückt halten und nur tippen möchten. |
ISG_TAP gesendet, wenn der Stift angehoben wird. |
WM_LBUTTONDOWN und WM_LBUTTONUP gesendet, wenn der Stift angehoben wird. |
Klicken Sie mit der linken Maustaste lange. Es ist keine Mausentsprechung vorhanden. Dies ist ein Fallback, wenn ein Benutzer lange gedrückt hält. Das Ereignis wird wiederhergestellt, um eine Koppelung zu sein. |
Ziehen |
Nach links ziehen |
Tippen Sie auf den Bildschirm, um das objekt auszuwählen, das verschoben werden soll, und ziehen Sie dann, nachdem das Objekt ausgewählt wurde. |
ISG_DRAG gesendet, wenn der Ziehvorgang beginnt. |
WM_LBUTTONDOWN gesendet, wenn das Ziehen beginnt, gefolgt von einer Reihe von Mausbewegungsnachrichten und gefolgt von einem WM_LBUTTONUP Ereignis. |
Ziehen Sie die Auswahl, wie in Microsoft Word, wenn Sie mit einer IP beginnen. mehrere Wörter auswählen; ziehen, wie beim Ziehen eines Objekts in Windows; bildlauf. |
Drücken und halten, gefolgt von einem Ziehen |
Rechtsziehvorgang |
Tippen Sie auf den Bildschirm, um das objekt auszuwählen, das verschoben werden soll. Halten Sie ihn gedrückt, bis das Maussymbol angezeigt wird, und ziehen Sie dann, um das Objekt zu verschieben. Heben Sie den Stift an, um ein Kontextmenü anzuzeigen. |
ISG_HOLDENTER gesendet, wenn der Stift seit einiger Zeit abfällt. ISG_RIGHTDRAG gesendet, wenn der Ziehvorgang beginnt. |
WM_RBUTTONDOWN gesendet, wenn der Ziehvorgang beginnt, gefolgt von einer Reihe von Mausbewegungsnachrichten, gefolgt von einem WM_RBUTTONUP Ereignis. |
Ziehen Sie, wie beim Ziehen eines Objekts oder einer Auswahl, gefolgt von einem Kontextmenü. |
Stiftzeiger |
Mauszeiger |
Halten Sie den Stift konstant in einem kleinen Abstand vom Bildschirm. |
ISG_HOVERENTER Ereignis, das anfangs gesendet wurde. Wenn das Hoverintervall abgeschlossen ist, ISG_HOVERLEAVEis gesendet. |
Keine Mausmeldungsentsprechung. |
QuickInfo, Rollovereffekte und andere Mauszeigerverhalten anzeigen. |
In-Air-Schütteln |
Tablet PC-Eingabebereichanzeigen. Keine Mausentsprechung. |
Bewegen Sie den Stift schnell von Seite zu Seite, halten Sie die Spitze über, aber innerhalb des Bereichs des Bildschirms. |
Das Ereignis wird nicht an die Anwendung übergeben. |
Keine Mausmeldungsentsprechung. |
Neu, spezifisch für Tablet PC. |
Angeben von Eingabestift- und Touchinteraktionen
Standardmäßig empfängt Ihr Fenster alle Systemgestenereignisse und verwendet das Standardinteraktionsmodell. Einige Teile dieses Modells beeinträchtigen möglicherweise Ihre Anwendung, sodass Sie sie selektiv deaktivieren können, indem Sie auf die WM_TABLET_QUERYSYSTEMGESTURESTATUS Message in WndProc reagieren.