Freigeben über


Freihandsammlung

Die Freihandsammlung beginnt mit dem Digitizer. Ein Benutzer platziert einen Stift auf dem Digitizer und beginnt mit dem Schreiben. Sie können die Freihandsammlungsfeatures der API verwenden, um die Sammlung von Freihanddaten zu verwalten, die aus dem Stift "fließt". Sie haben Über die Tablets-Auflistung und das Tablet-Objekt Zugriff auf Informationen zur verfügbaren Hardware auf Tablet PC. Anschließend verwenden Sie das InkCollector-Objekt , um die Daten abzurufen, die vom Digitizer stammen.

Tablets und das Tablet-Objekt

Ein Tablet stellt ein Digitalisiergerät von Tablet PC dar. Ein Tablet-PC kann über mehrere Digitizer verfügen. Mit dem Tablet-Objekt können Sie die verfügbaren Digitalisiergeräte, die an Tablet PC angefügt sind, und ihre jeweiligen Hardwarefunktionen abfragen. Sie können beispielsweise ermitteln, ob das Tablet , mit dem Sie arbeiten, in das Display integriert ist oder ein separates externes Gerät ist.

InkCollector-Objekt

Das InkCollector-Objekt erfasst Freihandeingaben von verfügbaren Tablet-Geräten . Das InkCollector-Objekt sammelt nur Freihand- und Gesten, die in ein bestimmtes Fenster eingegeben werden. Eine sehr effiziente Ereignissenke rendert diese Eingabe in Echtzeit. Das InkCollector-Objekt erfasst die Eingabe und leitet sie in ein Ink-Objekt weiter.

Hinweis

Das gleichzeitige Einlegen von Freihand mit mehreren Stiften kann je nach Hardwarefunktionen des Digitalisiergeräts funktionieren oder nicht.

 

Funktionsweise des Freihandsammlers

Das InkCollector-Objekt fügt sich an ein bekanntes Anwendungsfenster an. Anschließend können Benutzer ein beliebiges verfügbares Tablet-PC-Gerät (einschließlich der Maus) verwenden, um Freihand in Echtzeit auf dieses Fenster zu legen. Die gesammelten Freihandstriche werden in einem zugeordneten Freihandobjekt gespeichert. Diese Striche können dann bearbeitet oder zur Erkennung an eine Erkennung gesendet werden. Das InkCollector-Objekt benachrichtigt die Anwendung auch, wenn ein Cursor in den Bereich eines der verwendeten Tablet-PC-Geräte gelangt.

Damit das InkCollector-Objekt den Mauscursor in einem freihandfähigen Fenster genau festlegen kann, muss dieses Fenster in der Lage sein, die WM_SETCURSOR Nachricht zu empfangen. Dies ist für alle regulären Fenster erfolgreich, aber für ein Steuerelement in einem Dialogfeld filtert das übergeordnete Dialogfeld des Steuerelements diese Nachricht. Damit das Steuerelement die Nachricht empfängt, legen Sie die SS_NOTIFY-Format fest.

InkOverlay-Objekt

Das zuvor erläuterte InkCollector-Objekt ist nützlich für Anwendungen, um ein eigenes Modell zum Auswählen, Löschen und anderen Benutzerinteraktionen bereitzustellen. Das InkOverlay-Objekt ist eine Übermenge des InkCollector-Objekts , das Bearbeitungsunterstützung bietet. Dies ist nützlich für Anwendungen, um freihandzeichnungen und -bearbeitungen in ihren eigenen Dokumentbereich zu integrieren, indem sie eine Reihe von Standard-Freihandauswahlmodellen verwenden, die das Objekt bereitstellt.

Sowohl das InkCollector-Objekt als auch das InkOverlay-Objekt (sowie das InkPicture-Steuerelement ) verwenden gängige Konstrukte, z. B. das Ink-Objekt und die DrawingAttributes-Auflistung , sodass die grundlegende Möglichkeit zum Ändern der Freihandfarbe überall identisch ist. Dadurch können Sie Code wiederverwenden und einen gemeinsamen programmgesteuerten Zugriff haben, was besonders wichtig sein kann, wenn Sie Skriptunterstützung in Ihrer Anwendung anbieten.

InkOverlay ist ein COM-Objekt, das für Anmerkungsszenarien nützlich ist, in denen benutzer nicht mit der Erkennung von Freihand befasst sind, sondern stattdessen an der Größe, Form, Farbe und Position der Freihandfarbe interessiert sind. Es eignet sich gut zum Notieren und grundlegendes Scribbling. Die Standard-Benutzeroberfläche ist ein transparentes Rechteck mit undurchsichtiger Freihandeingabe.

InkOverlay erweitert die InkCollector-Klasse auf drei Arten:

  • Es löst Ereignisse für Änderungen des Anfangsstrich-, Endstrich- und Freihandattributes aus.
  • Es ermöglicht Benutzern, Freihandeingabe auszuwählen, zu löschen und die Größe zu ändern.
  • Die Befehle Ausschneiden, Kopieren und Einfügen werden unterstützt.

Ein typisches Szenario, in dem InkOverlay nützlich ist, ist das Markieren einer Präsentationsfolie oder eines Präsentationsbilds. Das InkOverlay-Objekt ermöglicht eine einfache Implementierung der Freihand- und Layoutfunktionen, die für dieses Szenario erforderlich sind.

Um mit InkOverlay zu arbeiten, führen Sie Folgendes aus:

  1. Instanziieren sie ein InkOverlay-Objekt .
  2. Fügen Sie den hWnd (Handle in verwaltetem Code) eines Fensters an die hWnd-Eigenschaft des InkOverlay-Objekts an (Handle-Eigenschaft in verwaltetem Code).
  3. Legen Sie die Enabled-Eigenschaft des InkOverlay-Objekts auf TRUE fest.

Das InkOverlay-Objekt umfasst grundlegende Druckunterstützung, Sie müssen jedoch die Druckvorschau oder andere erweiterte Druckfunktionen implementieren.

InkOverlay behält Freihand im serialisierten Freihandformat (ISF) bei.

Hinweis

Wenn der EditingMode des InkOverlay-Objekts auf Delete oder Select festgelegt ist, werden andere Ereignisse (z. B. InkAdded, InkDeleted und Stroke) ausgelöst. Diese Ereignisse sind nützlich, wenn Sie eigene Lösch- oder Auswahlmodi implementieren möchten.

 

Freihand auswählen

Mit dem InkOverlay-Objekt können Benutzer ein Lassotool verwenden, um Freihandobjekte auszuwählen, die in einer nachverfolgten Region enthalten sind. Benutzer können auch Freihand auswählen, indem sie auf ein beliebiges Freihandobjekt tippen.

Verwenden Sie die Selection-Eigenschaft , um eine Strokes-Auflistung zurückzugeben, mit der Sie die Auswahl eines Benutzers bearbeiten können.

Wenn ein Freihandobjekt oder eine Reihe von Freihandobjekten ausgewählt ist, werden die Größenpunkte an den vier Ecken des Begrenzungsrahmens der Freihand und an allen Mittelpunkten zwischen angrenzenden Ecken angezeigt. Wenn der Benutzer innerhalb der ausgewählten Region an eine beliebige Stelle zieht, kann die Freihandeingabe innerhalb des Steuerelements verschoben werden.

Standardverhalten

Das InkOverlay-Objekt ist standardmäßig auf das Sammeln von Freihand festgelegt. Freihand ist 53 Freihandraumeinheiten breit (wobei 1 Freihandraumeinheit = 1 HIMETRIC) ist. Die Freihandfarbe ist schwarz, wenn der Benutzer nicht im Modus mit hohem Kontrast ausgeführt wird. Andernfalls wird Freihand auf den COLOR_WINDOWTEXT Wert (WindowText in verwaltetem Code) festgelegt. FitToCurve ist FALSE.

Cursor- und Schaltflächenobjekte

Ein Cursor entspricht der Spitze des Stifts, der auf tablet PC verwendet wird. Für instance hat ein Stift zwei Enden. Normalerweise wird ein Ende zum Schreiben und das andere zum Löschen verwendet. Diese beiden Enden entsprechen zwei Cursorn. Die Cursor-Klasse wird nicht mit System.Windows.Forms.Cursor verwechselt.

Auf Tablet-PCs wird in der Regel ein Cursor definiert, der entweder zum Schreiben oder Löschen verwendet werden kann. Ein Cursor kann möglicherweise Rollen ändern, wenn die Anwendung diese Funktionalität aktiviert. Einige Tablet-PC-Geräte lassen mehrere Stifte zu. Jeder Cursor verfügt über eine zugeordnete Cursor-ID, die im System eindeutig ist. Ein Cursor kann über null oder mehr zugeordnete Schaltflächen verfügen. Diese Schaltflächen werden der Anwendung als CursorButton-Objekte bereitgestellt. Die Anwendung kann ein bestimmtes DrawingAttributes-Objekt für jeden bestimmten Cursor bereitstellen.

Zeichnungsattribute-Objekt

Ein DrawingAttributes-Objekt beschreibt, wie jeder bekannte Freihandsatz gezeichnet werden soll. Ein DrawingAttributes-Objekt enthält grundlegende Eigenschaften wie Color, Width und PenTip. Es kann auch erweiterte Parameter wie variable Transparenz und Bézierglättung umfassen, die interessante Effekte bieten oder die Lesbarkeit der Freihand verbessern können.

PenInputPanel-Objekt

Hinweis

Die PenInputPanel-Klasse ist veraltet. Die PenInputPanel-Klasse wurde durch die TextInputPanel-Klasse ersetzt.

 

Mit dem PenInputPanel-Objekt können Sie Ihren Anwendungen problemlos eine direkte Stifteingabe hinzufügen. PenInputPanel ist als anfügbares Objekt verfügbar, mit dem Sie vorhandenen Steuerelementen Funktionen des Tablet PC-Eingabebereichs hinzufügen können. Die Benutzeroberfläche wird größtenteils von der aktuellen Eingabesprache vorgeschrieben. Sie haben die Möglichkeit, die Standardeingabemethode für das PenInputPanel auszuwählen, entweder handschriftlich oder tastatur. Der Endbenutzer kann über Schaltflächen auf der Benutzeroberfläche zwischen Eingabemethoden wechseln.

InkCollector-Klasse (C++)

InkOverlay-Klasse (C++)

Microsoft.Ink-Namespace