共用方式為


使用文字筆跡物件

為了支援應用程式中的筆跡功能,有兩個物件可內嵌,且皆受到任何 OLE 容器的支持,分別是文字筆跡物件(tInk)和草圖筆跡物件(sInk)。

文字墨水物件是 OLE 物件,用於代表預期將形成文字的墨跡。 文字墨跡物件可讓手寫墨跡從備選清單中選擇,進而轉換為文字。 文字墨水物件的顏色和大小可以以程式方式設定,並可以根據物件周圍文字的屬性來設定。 文字筆跡物件的目的是要包含單一單字。

文字筆跡物件支援內嵌和剪貼簿支援所需的一組標準 OLE 介面。 IPersistStream 介面會以筆跡串行化格式讀取和寫入數據流。 文字筆跡物件提供 IInkLineInfo 介面,以存取其顯示屬性和辨識結果清單。

文字筆跡物件可以用於應用程式之間的互作性,方法是將它放在剪貼簿上的 OLE 物件位置、將它內嵌在 RTF 中,或將它保存在 ISF 數據流中。

文字筆跡物件可以透過下列方式產生。

  • InkEdit 控制項會使用文字墨跡物件。 InkEdit 控制件的功能是標準 RichEdit 控制項功能的超級集合。 筆跡會以文字筆跡物件的形式插入 InkEdit 控件的 RTF 數據流中。
  • 當應用程式將 InkStrokesInkEdit 物件複製到剪貼簿,且已設定 InkClipboardFormats 列舉 格式時,剪貼簿中的 OLE 物件插槽會包含文字墨跡 OLE 物件。
  • 平板電腦的輸入面板可以產生文字墨水物件。

例如,您的應用程式可以辨識手寫,並將辨識結果新增至筆劃。 然後,如果您將筆劃複製並貼到 Microsoft Word 中作為文字寫入物件,Word 2003 和更新版本中會提供該字的替代選項。

若要成功包含文字筆跡物件,應用程式必須實作內嵌物件的 OLE 容器支援。 然後,若要讓容器完全支援文字筆跡,您必須建立:

  • 對於應用程式中的「尋找及取代」功能進行修改。 與其略過搜尋中的內嵌物件,不如對這些物件的類型進行檢查。 如果是文字筆跡物件,則必須具現化並查詢其對應的文字。
  • 對選取行為所做的修改。 文字墨水物件的選取不應該與調整大小的控制點一起出現。 應以文件中選取文字的相同方式進行選取。 對象的選取程式代碼必須偵測類型是否為文字筆跡,並適當地顯示選取範圍。
  • 使用環境屬性。 必須將字型大小、色彩和粗體格式等環境屬性傳送至文字筆跡物件。 這些屬性的套用會變更手寫筆跡的寬度,因此需要透過呼叫 IInkLineInfo::GetInkExtentIOleObject::GetExtent 方法來更新尺寸。

在本節中