InkCollector 類別

表示用來從可用平板電腦裝置擷取筆跡的物件。

在透明控制項後方建立 InkCollector 控制項 (,例如已設定WS_EX_TRANSPARENT屬性的 GroupBox ) 將會防止 InkCollector 收集筆跡。

InkCollector 有下列類型的成員:

事件

InkCollector類別具有這些事件。

事件 描述
CursorButtonDown InkCollector 偵測到向下游標按鈕時發生。
CursorButtonUp InkCollector 偵測到已啟動的資料指標按鈕時發生。
CursorDown 發生于游標提示接觸數位平板電腦表面時。
CursorInRange 發生于游標進入平板電腦內容 (鄰近性) 的實體偵測範圍時。
CursorOutOfRange 當游標離開平板電腦內容的實體偵測範圍 (鄰近性) 時發生。
按兩下 按兩下 InkCollector 物件時發生。
手勢 發生于辨識應用程式特定的手勢時。
MouseDown 發生于滑鼠指標位於 InkCollector 物件上方且按下滑鼠按鍵時。
MouseMove 發生于滑鼠指標移至 InkCollector 物件上方時。
MouseUp 發生于滑鼠指標位於 InkCollector 物件上方且放開滑鼠按鍵時。
MouseWheel InkCollector 物件具有焦點時,滑鼠滾輪移動時發生。
NewInAirPackets 發生于看到無線封包時,當使用者將手寫筆移至平板電腦附近,而游標位於 InkCollector 物件的視窗內,或使用者移動 InkCollector 物件相關視窗內的滑鼠時。
NewPackets InkCollector 物件收到封包時發生。
中風 發生于使用者在任何平板電腦上完成繪製新筆劃時。
SystemGesture 發生于辨識系統手勢時。
TabletAdded 平板電腦 新增至系統時發生。
TabletRemoved 從系統移除 平板電腦 時發生。

介面

InkCollector類別會定義這些介面。

介面 描述
IInkCollector 此物件會實作 IInkCollector COM 介面。

方法

InkCollector類別具有這些方法。

方法 Description
GetEventInterest 擷取特定 InkCollector 物件事件的目前狀態,也就是正在接聽或使用事件。
GetGestureStatus 取 InkCollector 物件是否對特定手勢感興趣。
GetWindowInputRectangle 擷取以圖元為單位繪製筆跡的視窗矩形。
SetAllTabletsMode 此模式可讓 InkCollector 物件從任何附加至平板電腦的平板電腦收集筆跡。
SetEventInterest 修改值,這個值表示是否應該接聽或使用特定事件。
SetGestureStatus 修改已知手勢中 InkCollector 物件的興趣。
SetSingleTabletIntegratedMode 此模式可讓 InkCollector 物件只從一部平板電腦收集筆跡。 InkCollector物件會忽略來自其他平板電腦的筆跡。
SetWindowInputRectangle 修改以圖元為單位的視窗矩形,以將繪製的筆跡對應至視窗。

屬性

InkCollector類別具有這些屬性。

屬性 存取類型 Description
AutoRedraw
唯讀
取得或設定值,指定當視窗失效時 ,InkCollector 是否會重繪筆跡。
CollectingInk
唯讀
取得值,這個值會指定筆跡目前是否正在 InkCollector 物件上繪製。
CollectionMode
唯讀
取得或設定集合模式,判斷筆跡、手勢或兩者是否可辨識為使用者寫入。
資料指標
唯讀
取得可用於筆跡區域中的 Cursors 集合。
DefaultDrawingAttributes
唯讀
取得或設定預設 InkDrawingAttributes 物件,指定繪製和顯示筆跡時所使用的繪圖屬性。
DesiredPacketDescription
唯讀
取得或設定與 InkCollector 物件上繪製之筆跡相關聯的封包層面感興趣。
DynamicRendering
唯讀
取得或設定值,這個值表示筆跡是否在繪製時呈現。
啟用
唯讀
取得或設定值,指定 InkCollector 物件是否收集手寫筆輸入。
Handle
唯讀
取得或設定 附加 InkCollector 物件的視窗控制碼。
筆跡
唯讀
取得或設定與InkCollector物件相關聯的InkDisp物件。
MarginX
唯讀
取得或設定 X 軸的邊界,以圖元為單位。
MarginY
唯讀
取得或設定沿著 Y 軸的邊界,以圖元為單位。
MouseIcon
唯讀
取得或設定目前的自訂滑鼠圖示。
MousePointer
唯讀
取得或設定值,這個值表示當滑鼠位於物件的特定部分時出現的滑鼠指標類型。
轉譯器
唯讀
取得或設定用來繪製筆跡的 InkRenderer 物件。
SupportHighContrastInk
唯讀
取得或設定值,指定當系統處於高對比模式時,筆跡是否只轉譯為一種色彩。
Tablet
唯讀
取得 InkCollector 物件目前用來收集輸入的平板電腦裝置。

備註

此物件可以藉由在 C++ 中呼叫 CoCreateInstance 方法來具現化。

InkCollector物件只會收集筆跡和筆勢,這些筆跡和手勢會輸入至與其相關聯的特定視窗。 InkCollector的唯一用途是透過IInkCursorIInkTablet物件) ,從硬體 (收集筆跡,並將其傳遞給應用程式。 它基本上會做為將筆跡散發至一或多個不同 InkDisp 物件的來源,以作為保存分散式筆跡的容器。

若要使用 InkCollector,您可以建立它、告訴它在哪個視窗上收集繪製的筆跡,並加以啟用。 啟用之後,只要在 InkCollectionMode 列舉) 指定模式 (,就可以將它設定為只收集三種模式之一:

  • InkOnly,在其中建立 IInkStrokeDisp 物件。
  • GestureOnly,在其中建立 IInkGesture 物件。
  • InkAndGesture,根據應用程式如何處理事件,建立筆劃、手勢或可能兩者。

這表示,對於平板電腦範圍內游標的每個移動, InkCollector 一律會收集筆劃或手勢,有時同時同時收集這兩者。 手勢支援是使用 Microsoft 手勢辨識器內建的。

InkCollector會處理所有平板電腦輸入。 您可以從所有連接的平板電腦收集筆跡, (同時包括滑鼠) 。 IInkCursorIInkCursorButton物件的變更可能會導致InkCollector物件引發事件。

InkCollector也會管理其存在期間遇到的資料指標清單。 當 InkCollector 遇到新的游標時, CursorInRange 事件會引發, 並將 newCursor 參數設定為 VARIANT_TRUE。 應用程式會使用 InkCollector 來管理新的資料指標。

多個 InkCollector 可以與特定視窗控制碼相關聯,即使集合區域是在建構函式中設定,還是 使用 SetWindowInputRectangle 方法重 迭。 不過,如果每個 InkCollector 呼叫 SetSingleTabletIntegratedMode 並使用唯一的平板電腦,則此案例唯一的運作方式。 此行為可讓您輕鬆地將筆跡儲存在每個平板電腦的不同物件中。

如果一個已啟用 InkCollectors 的視窗輸入矩形 (設定為 Enabled 屬性) 與另一個已啟用 InkCollector的視窗輸入矩形重迭,就會發生錯誤。

注意

只要在任何已知時間只啟用其中一個輸入矩形,就可能發生重迭而不發生錯誤。

MouseDown、MouseMoveMouseUpMouseWheel事件會以圖元為單位傳回 x 和 y 座標,而不是與筆跡空間相關聯的 HIMETRIC 單位。 這是因為這些事件會取代手寫筆未察覺應用程式的滑鼠事件,而且這些應用程式只會瞭解圖元。

注意

InkCollector物件無法在非 UI 執行緒上安全地釋放。

若要改善應用程式的效能,請在不再需要 InkCollector 物件時處置它。

規格需求

需求
最低支援的用戶端
Windows XP Tablet PC Edition [僅限傳統型應用程式]
最低支援的伺服器
都不支援
標頭
Msinkaut.h (也需要 Msinkaut_i.c)
程式庫
InkObj.dll

另請參閱

InkEdit 控制項參考

InkDisp 類別

InkOverlay 類別

InkPicture 控制項參考