共用方式為


sInk 和 tInk 物件

為了協助在應用程式中支援筆跡,有兩個物件可以內嵌,而且可由任何 OLE 容器支援。 它們是由呼叫 Ink.ClipboardCopy 方法 (Rectangle、InkClipboardFormats、InkClipboardModes) Ink.ClipboardCopy 方法 (Strokes、InkClipboardFormats、InkClipboardModes) 方法產生,且為:

  • 文字筆跡物件 (tInk) 。 這是代表預期形成文字之筆跡的 OLE 物件。 tInk 物件可讓手寫筆跡轉換成文字,做為辨識器傳回的文字,或是從辨識替代專案清單中取得的選擇。 可以程式設計方式設定筆跡的色彩和大小,而且可以根據物件周圍的文字屬性。 tInk 物件的目的是要包含單字。tInk 物件是一個小型輕量型物件,可以執行簡單的作業,例如 (為 HDC) 和 RECT) ) 的裝置 (內容指定控制碼,以及保留本身 (指定的資料流程) 。 使用 tInk 物件可在使用手寫和文字輸入的應用程式中工作時,提供順暢的使用者體驗。
  • 繪圖筆跡物件 (sInk) 。 這是 OLE 物件,代表不預期形成文字的筆跡。 sInk 物件會解譯為繪圖。 sInk 物件也適用于代表多個單字。

這些物件可用於應用程式之間的互通性,方法是將它們放在剪貼簿上的 OLE 物件位置,或將它們內嵌在 RTF (RTF) 。

您可以使用下列方式使用 tInk 和 sInk 物件:

  • Microsoft Word 2002 支援 tInk 和 sInk 物件。 使用者可以使用 Word 2002 中提供的書寫和繪圖文字輸入面板,將筆跡插入Word檔中。 此筆跡會內嵌在Word檔案中,做為具有 sInk 或 tInk 物件的 CLSID 的 OLE 物件。
  • 平板電腦 InkEdit 控制項會使用 tInk 物件。 InkEdit 控制項是標準 RichTextBox 控制項的子類別。 Ink 會以 tInk 物件的形式插入 InkEdit 控制項的 RTF 資料流程中。
  • 當應用程式將選取的 Ink 物件移至剪貼簿時,OLE 物件剪貼簿位置會包含 tInk 或 sInk OLE 物件。

例如,您的應用程式可以辨識手寫,並將任何 Ink 物件標示為 tInk 物件。 然後,如果您在筆跡中選取一個字並複製並貼到Word,該字的替代專案會顯示在 2002 Word 2002。

注意

當您將 sInk 或 tInk 物件放在剪貼簿上做為 OLE 物件時,平板電腦平臺的剪貼簿支援會自動為您選取增強的中繼檔 (EMF) 旗標。 物件本身會儲存在內嵌來源和物件描述元位置的剪貼簿上。

 

另一個範例是使用 sInk 物件,您可以在應用程式中繪製筆跡草圖、將草圖複製並貼到 Word 2002,然後在 Word 中使用平板電腦輸入面板編輯繪圖。

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

  • [尋找和取代] 的程式碼修改。 這些物件必須詢問類型,而不是略過搜尋中的内嵌物件。 如果是 tInk 物件,則必須具現化並查詢其對應的文字。
  • 對選取行為所做的修改。 選取 tInk 物件永遠不應該顯示大小調整控點。 應該以檔中選取文字的相同方式加以選取。 物件的選取程式碼必須偵測類型是否為 tInk,並適當地顯示選取範圍。
  • 使用環境屬性。 環境屬性,例如字型大小、色彩和粗體格式設定,都必須傳輸至 tInk 物件。 這些屬性的應用程式會變更手寫筆跡的寬度,因此呼叫 GetInkExtent 方法IOleObject::GetExtent 方法需要大小更新。
  • 覆寫預設 的 IOleObject::D oVerb 方法處理。 這可讓文字轉換成文字,以將一批 tInk 物件傳遞至辨識器,然後可將文字分成辨識區段。

如需將單字分成辨識區段的詳細資訊,請參閱 辨識區段