sInk- und tInk-Objekte
Um die Unterstützung von Freihand in Anwendungen zu unterstützen, gibt es zwei Objekte, von denen beide eingebettet werden können und von jedem OLE-Container unterstützt werden. Sie werden durch Aufrufen der Ink.ClipboardCopy-Methode (Rectangle, InkClipboardFormats, InkClipboardModes) oder der Ink.ClipboardCopy-Methode (Strokes, InkClipboardFormats, InkClipboardModes) erzeugt und sind:
- Text-Freihandobjekt (tInk). Dies ist ein OLE-Objekt, das Freihand darstellt, das Wörter bilden soll. 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 Freihandfarbe kann programmgesteuert festgelegt werden und kann 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 (ein Handle für einen Gerätekontext (HDC) und ein RECT ausführen kann und sich selbst (bei einem Stream) beibehalten kann. Die Verwendung eines tInk-Objekts ermöglicht eine nahtlose Benutzerfreundlichkeit bei der Arbeit in einer Anwendung, die sowohl handschriftliche als auch textbasierte Eingaben verwendet.
- Sketch-Freihandobjekt (sInk). Dies ist ein OLE-Objekt, das Freihand darstellt, von dem keine Wörter erwartet 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, indem Sie sie entweder in den OLE-Objektslot in der Zwischenablage platzieren oder sie im Rich Text Format (RTF) einbetten.
Sie können tInk- und sInk-Objekte wie folgt verwenden:
- Sowohl tInk- als auch sInk-Objekte werden in Microsoft Word 2002 unterstützt. Benutzer können Freihandeingaben in ein Word Dokument einfügen, indem sie die in Word 2002 bereitgestellten Texteingabebereiche zum Schreiben und Zeichnen verwenden. Diese Freihandeingabe wird in die Word-Datei als OLE-Objekt mit der CLSID des sInk- oder tInk-Objekts eingebettet.
- Das Tablet PC InkEdit-Steuerelement verwendet das tInk-Objekt. Das InkEdit-Steuerelement ist eine Unterklasse des RichTextBox-Standardsteuerelements . Freihand wird als tInk-Objekt in den RTF-Stream des InkEdit-Steuerelements eingefügt.
- Wenn eine Anwendung ein ausgewähltes Freihandobjekt in die Zwischenablage verschiebt, enthält der ZWISCHENABLAGE-Slot des OLE-Objekts ein tInk- oder sInk-OLE-Objekt.
Beispielsweise kann Ihre Anwendung Handschriften erkennen und jedes Freihandobjekt als tInk-Objekt markieren. Wenn Sie dann ein Wort in Freihand auswählen und kopieren und in Word einfügen, werden alternative Wörter für dieses Wort in Word 2002 angezeigt.
Hinweis
Die Zwischenablageunterstützung der Tablet PC-Plattform wählt automatisch das EmF-Flag (Enhanced Metafile) 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 Objektbeschreibungsslots 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 bearbeiten, indem Sie den Tablet PC-Eingabebereich in Word verwenden.
Damit tInk-Objekte erfolgreich enthalten sind, muss eine Anwendung OLE-Containerunterstützung für eingebettete Objekte implementieren. Damit der Container tInk vollständig unterstützt, 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 dem Typ abgefragt werden. Wenn es sich um ein tInk-Objekt handelt, müssen sie instanziiert und nach dem entsprechenden Text abgefragt werden.
- Änderungen am Auswahlverhalten. Die Auswahl von tInk-Objekten sollte nie mit Größenhandles angezeigt werden. Sie sollten auf die gleiche Weise wie Text im Dokument ausgewählt werden. Auswahlcode für Objekte muss erkennen, ob der Typ tInk ist, und die Auswahl entsprechend anzeigen.
- Verwendung von Umgebungseigenschaften. Umgebungseigenschaften wie Schriftgrad, Farbe und fett formatierte Formatierungen 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 die IOleObject::GetExtent-Methode aufgerufen wird .
- Überschreiben Sie die Standardverarbeitung der IOleObject::D oVerb-Methode . Dies ermöglicht die Konvertierung in Text, um einen Batch 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.