Systemereignisse und Mausmeldungen

Ihre Anwendung integriert den optimalen Entwurf und die optimale Verwendung des Tablettstifts, indem sowohl Microsoft Windows Mausnachrichten als auch Systemereignisse gesendet werden. Anwendungen empfangen beide Sätze von Ereignissen 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 Mausmeldungen gut zum Zeigen und Auswählen von Aktivitäten, und Sie sollten sie für Aktivitäten verwenden, die die Interaktion mit Elementen der Benutzeroberfläche (UI) beinhalten. Stiftereignisse funktionieren gut für Diekanwendung in Echtzeit, Stiftaktionen und Handschrift.

Hinweis

Stiftereignisse und Mausmeldungen werden an eine Anwendung gesendet, unabhängig davon, ob der Stift oder die Maus verwendet wird.

Unterscheiden der Stifteingabe von Maus und Fingereingabe

Wenn Ihre Anwendung eine Mausnachricht empfängt (z. B. WM LBUTTONDOWN), kann sie die _ GetMessageExtraInfo-Funktion aufrufen, um zu bewerten, ob die Nachricht von einem Stift oder einem Mausgerät stammt.

Der von GetMessageExtraInfo zurückgegebene Wert muss maskiert 0xFFFFFF00 und dann mit dem 0xFF515700. Die folgenden Definitionen können dies deutlich machen:

#define MI_WP_SIGNATURE<entity type="nbsp"/> 0xFF515700
#define SIGNATURE_MASK<entity type="nbsp"/><entity type="nbsp"/> 0xFFFFFF00
#define IsPenEvent(dw)<entity type="nbsp"/><entity type="nbsp"/> (((dw) & SIGNATURE_MASK) == MI_WP_SIGNATURE

Wenn der Vergleich true ist, wurde diese Mausmeldung 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 variabel. Von diesen Bits werden 7 (die untere 7, maskiert durch 0x7F) verwendet, um die Cursor-ID, null für die Maus oder einen Variablenwert für die Stift-ID zu darstellen. Darüber hinaus wird in Windows Vista das achte Bit, maskiert von 0x80, verwendet, um touch input von pen input (0 = pen, 1 = touch) zu unterscheiden.

Unterstützte Systemgesten

In der folgenden Tabelle sind die derzeit in Windows XP Tablet PC Edition enthaltenen Systemgesten aufgeführt, die entsprechenden Stiftaktionen und Systemereignisse sowie deren Beziehung zu herkömmlichen Mausaktionen aufgeführt.

Stiftgeste Mausaktion Stiftgestenbeschreibung Ereignismeldungen Mausmeldungen Verhalten in Windows-basierten Anwendungen
Tippen
Linksklick
Tippen Sie einmal mit dem Stift auf den Bildschirm.
ISG _ TAP wird beim Heben des Stifts gesendet.
WM _ LBUTTONDOWN und WM _ LBUTTONUP werden gesendet, wenn der Stift gezauft wurde.
Wählen Sie im Menü oder in der Symbolleiste den Befehl aus, ergreifen Sie eine Aktion, wenn Sie den Befehl ausgewählt haben, legen Sie die Einfügemarke (IP) fest, und zeigen Sie Auswahlfeedback an.
Doppeltippen
Doppelklicken
Tippen Sie in schneller Folge zweimal auf bildschirm.
ISG _ DOUBLETAP wird beim zweiten Tippen (nach unten) gesendet. BEIM ersten Tippen gesendetes ISG _ TAP-Ereignis.
WM _ LBUTTONDBLCLK gesendet beim zweiten Tippen (nach unten). WM _ LBUTTONDOWN und WM LBUTTONUP, die beim ersten Tippen _ (nach oben) gesendet werden, wie bei einem einzigen Tippen.
Wählen Sie Word aus, öffnen Sie die Datei oder den Ordner .
Drücken und Halten
Rechtsklick
Tippen Sie auf den Bildschirm, halten Sie ihn gedrückt, bis ein Maussymbol angezeigt wird, und heben Sie dann den Stift, um ein Kontextmenü anzuzeigen. Eine Anwendung kann eine Aktion ausführen, die sich von der Anzeige eines Kontextmenüs beim Heben des Stifts abwählt.
ISG _ HOLDENTER wird gesendet, wenn der Stift lang genug heruntergefahren ist. ISG _ RIGHTTAP wird gesendet, wenn der Stift per Lifting und Rechtsklick angezeigt wird.
WM RBUTTONDOWN und WM RBUTTONUP werden gesendet, wenn ein Rechtsklick _ _ auftritt (wenn der Stift per Lifting aufgehoben wird).
Kontextmenü anzeigen.
Zurückhalten
Linksklick
Tippen Sie auf den Bildschirm, und halten Sie ihn gedrückt, bis das Maussymbol angezeigt und nicht mehr angezeigt wird. Benutzer werden dies wahrscheinlich tun, wenn sie versehentlich drücken und halten und einfach tippen möchten.
ISG _ TAP wird beim Heben des Stifts gesendet.
WM _ LBUTTONDOWN und WM _ LBUTTONUP werden gesendet, wenn der Stift per Lifting aufgehoben wird.
Klicken Sie lange mit der linken Maustaste. Es ist kein Mausäquivalent vorhanden. Dies ist ein Fallback für den Fall, dass ein Benutzer lange gedrückt hält. Das Ereignis wird wieder zu einem Tippen.
Ziehen
Ziehen nach links
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 sent when drag starts.
WM LBUTTONDOWN wird gesendet, wenn der Ziehbewegungsstart gestartet wird, gefolgt von einer Reihe von Mausbewegungsmeldungen, gefolgt von einem _ _ WM-LBUTTONUP-Ereignis.
Ziehen Sie die Auswahl, wie in Microsoft Word, wenn Sie mit einer IP-Adresse beginnen. Wählen Sie mehrere Wörter aus. ziehen, wie beim Ziehen eines Objekts in Windows; Scrollen.
Halten Sie gedrückt, gefolgt von einem Ziehziehze
Ziehen mit der rechten Seite
Tippen Sie auf den Bildschirm, um das Objekt auszuwählen, das verschoben werden soll. Halten Sie gedrückt, bis das Maussymbol angezeigt wird, und ziehen Sie dann, um das Objekt zu verschieben. Heben Sie den Stift auf, um ein Kontextmenü anzuzeigen.
ISG _ HOLDENTER wird gesendet, wenn der Stift seit einiger Zeit nicht mehr zur Hand ist. ISG_RIGHTDRAG sent when drag starts.
WM RBUTTONDOWN wird gesendet, wenn der Ziehbewegungsstart gestartet wird, gefolgt von einer Reihe von Mausbewegungsmeldungen, gefolgt von _ einem WM _ RBUTTONUP-Ereignis.
Ziehen Sie , wie beim Ziehen eines Objekts oder einer Auswahl gefolgt von einem Kontextmenü.
Stift mit dem Hover
Mauszeigerzeiger
Halten Sie den Stift in einem kleinen Abstand vom Bildschirm fest.
Das ISG _ HOVERENTER-Ereignis wurde anfänglich gesendet. Wenn das Hoverintervall abgeschlossen ist, werden ISG _ HOVERLEAVEis gesendet.
Keine entsprechende Mausmeldung.
Zeigt QuickInfo, Rollovereffekte und andere Mauszeigerbewegungsverhalten an.
Schütteln in der Luft
Tablet PC-Eingabebereich anzeigen. Keine Entsprechende Maus.
Bewegen Sie den Stift schnell von seite zu seite, und halten Sie die Spitze oben, aber innerhalb des Bereichs des Bildschirms.
Das Ereignis wird nicht an die Anwendung übergeben.
Keine entsprechende Mausmeldung.
Neu, spezifisch für Tablet PC.

Angeben von Stift- und Touchinteraktionen

Standardmäßig erhält Ihr Fenster alle Systemgestenereignisse und verwendet das Standardinteraktionsmodell. Einige Teile dieses Modells können Ihre Anwendung beeinträchtigen, sodass Sie sie selektiv deaktivieren können, indem Sie auf die WM _ TABLET _ QUERYSYSTEMGESTURESTATUS-Nachricht in Ihrer WndProc reagieren.