sInk- und tInk-Objekte
Zur Unterstützung von Freihandeingaben in Anwendungen gibt es zwei Objekte, die beide eingebettet werden können und von jedem OLE-Container unterstützt werden. Sie werden entweder durch Aufrufen der Ink.ClipboardCopy-Methode (Rectangle, InkClipboardFormats, InkClipboardModes) oder der Ink.ClipboardCopy-Methode (Strokes, InkClipboardFormats, InkClipboardModes) Methode erstellt und sind:
- Text ink-Objekt (tInk). Dies ist ein OLE-Objekt, das Freihandeingaben darstellt, die wörter bilden sollen. Ein tInk-Objekt ermöglicht es, die handschriftliche Freihandeingabe in Text zu konvertieren, entweder als der von einer Erkennung zurückgegebene Text oder die Auswahl aus einer Liste von Erkennungsvarianten. Die Farbe und Größe der Freihandeingabe können programmgesteuert festgelegt werden und können auf den Attributen des Texts um das Objekt basieren. Das tInk-Objekt soll ein einzelnes Wort enthalten. Das tInk-Objekt ist ein kleines, einfaches Objekt, das einfache Vorgänge wie das Rendern (sofern ein Handle für einen Gerätekontext (HDC) und ein RECT ausgeführt werden kann und sich selbst beibehalten kann (vorausgesetzt, ein Datenstrom). Die Verwendung eines tInk-Objekts ermöglicht eine nahtlose Benutzererfahrung beim Arbeiten in einer Anwendung, die Eingaben von Handschrift und Text verwendet.
- Skizzieren des Freihandobjekts (sInk). Dies ist ein OLE-Objekt, das Freihandeingaben darstellt, die nicht erwartet werden, dass Wörter erstellt werden. Ein sInk-Objekt wird als Zeichnung interpretiert. Ein sInk-Objekt ist auch nützlich, um mehrere Wörter darzustellen.
Diese Objekte können für die Interoperabilität zwischen Anwendungen verwendet werden, entweder durch Platzieren im OLE-Objektplatz in der Zwischenablage oder durch Einbetten in Rich-Text-Format (RTF).
Sie können tInk- und sInk-Objekte auf folgende Weise verwenden:
- Sowohl tInk- als auch sInk-Objekte werden in Microsoft Word 2002 unterstützt. Benutzer können Freihand in ein Word-Dokument einfügen, indem sie die in Word 2002 bereitgestellten Eingabebereiche zum Schreiben und Zeichnen von Text verwenden. Diese Freihandeingabe wird in die Word-Datei als OLE-Objekt mit der CLSID des sInk- oder tInk-Objekts eingebettet.
- Der Tablet PC InkEdit Steuerelement verwendet das tInk-Objekt. Das InkEdit-Steuerelement ist eine Unterklasse des Standardmäßigen RichTextBox-Steuerelements. Freihand wird als tInk-Objekt in den RTF-Datenstrom des InkEdit-Steuerelements eingefügt.
- Wenn eine Anwendung ein ausgewähltes Ink--Objekt in die Zwischenablage verschiebt, enthält das OLE-Objekt zwischenablage ein tInk- oder sInk OLE-Objekt.
Ihre Anwendung kann z. B. Handschrift erkennen und jedes Ink- Objekt als tInk-Objekt markieren. Wenn Sie dann ein Wort in Freihand markieren und in Word kopieren und einfügen, werden alternative Wörter für dieses Wort in Word 2002 angezeigt.
Anmerkung
Die Unterstützung für die Zwischenablage der Tablet PC-Plattform wählt automatisch das EMF-Flag (Enhanced Metafile) für Sie aus, wenn Sie ein sInk- oder tInk-Objekt in der Zwischenablage als OLE-Objekt platzieren. Das Objekt selbst wird in der Zwischenablage in den Einbettungsquellen- und Objektbeschreibungsmodulen gespeichert.
Als weiteres Beispiel können Sie mithilfe des sInk-Objekts eine Freihandskizze in einer Anwendung zeichnen, die Skizze kopieren und in Word 2002 einfügen und dann die Zeichnung mithilfe des Tablet PC-Eingabebereichs in Word bearbeiten.
Um tInk-Objekte erfolgreich zu enthalten, muss eine Anwendung DIE OLE-Containerunterstützung für eingebettete Objekte implementieren. Um den Container dann vollständig zu unterstützen, müssen Sie Folgendes erstellen:
- Änderungen am Code für "Suchen und Ersetzen". Anstatt eingebettete Objekte in der Suche zu überspringen, müssen diese Objekte nach Typ abgefragt werden. Wenn es sich um ein tInk-Objekt handelt, müssen sie instanziiert und für den entsprechenden Text abgefragt werden.
- Änderungen am Auswahlverhalten. Die Auswahl von tInk-Objekten sollte nie mit Ziehpunkten angezeigt werden. Sie sollten auf die gleiche Weise ausgewählt werden, wie Text im Dokument ausgewählt wird. Der Auswahlcode für Objekte muss erkennen, ob der Typ "tInk" ist, und die Auswahl entsprechend anzeigen.
- Verwendung von Umgebungseigenschaften. Umgebungseigenschaften wie Schriftgrad, Farbe und Fettformatierung müssen an das tInk-Objekt übertragen werden. Die Anwendung dieser Eigenschaften ändert die Breite der handschriftlichen Freihandeingabe, sodass eine Größenaktualisierung erforderlich ist, indem die GetInkExtent-Methode oder IOleObject::GetExtent-Methode aufgerufen wird.
- Überschreiben Sie die Standardmäßige IOleObject::D oVerb Methodenverarbeitung. Dadurch kann textkonvertiert werden, um eine Reihe von tInk-Objekten an die Erkennung zu übergeben, wodurch die Wörter dann in Erkennungssegmente unterteilt werden können.
Weitere Informationen zum Aufteilen von Wörtern in Erkennungssegmente finden Sie unter Erkennungssegmente.