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的唯一用途是透過IInkCursor和IInkTablet物件) ,從硬體 (收集筆跡,並將其傳遞給應用程式。 它基本上會做為將筆跡散發至一或多個不同 InkDisp 物件的來源,以作為保存分散式筆跡的容器。
若要使用 InkCollector,您可以建立它、告訴它在哪個視窗上收集繪製的筆跡,並加以啟用。 啟用之後,只要在 InkCollectionMode 列舉) 指定模式 (,就可以將它設定為只收集三種模式之一:
- InkOnly,在其中建立 IInkStrokeDisp 物件。
- GestureOnly,在其中建立 IInkGesture 物件。
- InkAndGesture,根據應用程式如何處理事件,建立筆劃、手勢或可能兩者。
這表示,對於平板電腦範圍內游標的每個移動, InkCollector 一律會收集筆劃或手勢,有時同時同時收集這兩者。 手勢支援是使用 Microsoft 手勢辨識器內建的。
InkCollector會處理所有平板電腦輸入。 您可以從所有連接的平板電腦收集筆跡, (同時包括滑鼠) 。 IInkCursor和IInkCursorButton物件的變更可能會導致InkCollector物件引發事件。
InkCollector也會管理其存在期間遇到的資料指標清單。 當 InkCollector 遇到新的游標時, CursorInRange 事件會引發, 並將 newCursor 參數設定為 VARIANT_TRUE。 應用程式會使用 InkCollector 來管理新的資料指標。
多個 InkCollector 可以與特定視窗控制碼相關聯,即使集合區域是在建構函式中設定,還是 使用 SetWindowInputRectangle 方法重 迭。 不過,如果每個 InkCollector 呼叫 SetSingleTabletIntegratedMode 並使用唯一的平板電腦,則此案例唯一的運作方式。 此行為可讓您輕鬆地將筆跡儲存在每個平板電腦的不同物件中。
如果一個已啟用 InkCollectors 的視窗輸入矩形 (設定為 Enabled 屬性) 與另一個已啟用 InkCollector的視窗輸入矩形重迭,就會發生錯誤。
注意
只要在任何已知時間只啟用其中一個輸入矩形,就可能發生重迭而不發生錯誤。
MouseDown、MouseMove、MouseUp和MouseWheel事件會以圖元為單位傳回 x 和 y 座標,而不是與筆跡空間相關聯的 HIMETRIC 單位。 這是因為這些事件會取代手寫筆未察覺應用程式的滑鼠事件,而且這些應用程式只會瞭解圖元。
注意
InkCollector物件無法在非 UI 執行緒上安全地釋放。
若要改善應用程式的效能,請在不再需要 InkCollector 物件時處置它。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows XP Tablet PC Edition [僅限傳統型應用程式] |
最低支援的伺服器 |
都不支援 |
標頭 |
|
程式庫 |
|