Share via


Text Ink オブジェクトの操作

アプリケーションでのインクのサポートを支援するために、2 つのオブジェクトがあり、どちらも埋め込み可能で、OLE コンテナー、テキスト インク オブジェクト (tInk) とスケッチ インク オブジェクト (sInk) でサポートされています。

テキスト インク オブジェクトは、単語を形成することが期待されるインクを表す OLE オブジェクトです。 テキスト インク オブジェクトを使用すると、代替の一覧から選択して、手書きのインクをテキストに変換できます。 テキスト インク オブジェクトの色とサイズは、プログラムで設定でき、オブジェクトの周囲のテキストの属性に基づいて設定できます。 テキスト インク オブジェクトは、1 つの単語を含む目的です。

テキスト インク オブジェクトは、埋め込みとクリップボードのサポートに必要な OLE インターフェイスの標準セットをサポートしています。 IPersistStream インターフェイスは、インク シリアル化形式 (ISF) でストリームの読み取りと書き込みを行います。 テキスト インク オブジェクトは、表示プロパティと認識結果リストにアクセスするための IInkLineInfo インターフェイスを提供します。

テキスト インク オブジェクトは、クリップボードの OLE オブジェクト スロットに配置するか、RTF に埋め込むか、ISF ストリームに保持することによって、アプリケーション間の相互運用性に使用できます。

テキスト インク オブジェクトは、次の方法で生成できます。

  • InkEdit コントロールは、テキスト インク オブジェクトを使用します。 InkEdit コントロールの機能は、標準の RichEdit コントロール機能のスーパーセットです。 Ink は、テキスト インク オブジェクトとして InkEdit コントロールの RTF ストリームに挿入されます。
  • アプリケーションが InkStrokes オブジェクトまたは InkEdit オブジェクトをクリップボードにコピーし、 InkClipboardFormats 列挙 形式が設定されている場合、OLE オブジェクトクリップボード スロットにはテキスト インク OLE オブジェクトが含まれます。
  • タブレット PC 入力パネルでは、テキスト インク オブジェクトを生成できます。

たとえば、アプリケーションで手書きを認識し、認識結果をストロークに追加できます。 次に、テキスト インク オブジェクトとしてストロークを Microsoft Word にコピーして貼り付けると、その単語の代替候補は、Word 2003 以降のバージョンで使用できます。

テキスト インク オブジェクトを正常に格納するには、アプリケーションで埋め込みオブジェクトに対する OLE コンテナーのサポートを実装する必要があります。 次に、コンテナーでテキスト インクを完全にサポートするには、次の設定を行う必要があります。

  • 検索と置換のアプリケーションに対する変更。 検索で埋め込みオブジェクトをスキップする代わりに、これらのオブジェクトを型について尋問する必要があります。 テキスト インク オブジェクトの場合は、インスタンス化し、対応するテキストに対してクエリを実行する必要があります。
  • 選択動作の変更。 テキスト インク オブジェクトの選択は、サイズ変更ハンドルと共に表示されません。 これらは、文書でテキストを選択するのと同じ方法で選択する必要があります。 オブジェクトの選択コードでは、型がテキスト インクであるかどうかを検出し、選択内容を適切に表示する必要があります。
  • アンビエント プロパティの使用。 フォント サイズ、色、太字などのアンビエント プロパティは、テキスト インク オブジェクトに送信する必要があります。 これらのプロパティを適用すると、手書きのインクの幅が変更されるため、 IInkLineInfo::GetInkExtent メソッドまたは IOleObject::GetExtent メソッドを呼び出すことでサイズの更新が必要になります。

このセクションの内容