InkOverlay 類別
表示物件,對於使用者不擔心對筆跡執行辨識,而是對筆跡的大小、圖形、色彩和位置感興趣,對批註案例很有用。
在透明控制項後方建立 InkOverlay 控制項 (,例如已設定 WS_EX_TRANSPARENT 屬性的 GroupBox,) 將會防止 InkOverlay 收集筆跡。
InkOverlay 具有下列類型的成員:
事件
InkOverlay類別具有這些事件。
事件 | 描述 |
---|---|
CursorButtonDown | 當 InkOverlay 偵測到向下游標按鈕時發生。 |
CursorButtonUp | 發生于 InkOverlay 偵測到已啟動的游標按鈕時。 |
CursorDown | 發生于游標提示接觸數位平板電腦表面時。 |
CursorInRange | 當游標進入平板電腦內容的實體偵測範圍 (鄰近性) 時發生。 |
CursorOutOfRange | 當游標離開平板電腦內容的實體偵測範圍 (鄰近性) 時發生。 |
按兩下 | 發生于按兩下 InkOverlay 物件時。 |
手勢 | 發生于辨識應用程式特定的手勢時。 |
MouseDown | 發生于滑鼠指標位於 InkOverlay 物件上方,並按下滑鼠按鍵時。 |
MouseMove | 發生于滑鼠指標移至 InkOverlay 物件上方時。 |
MouseUp | 發生于滑鼠指標位於 InkOverlay 物件上方,並放開滑鼠按鍵時。 |
MouseWheel | 當 InkOverlay 物件具有焦點時,滑鼠滾輪移動時發生。 |
NewInAirPackets | 發生于看到無線封包時,當使用者將手寫筆移至平板電腦附近,而游標位於 InkOverlay 物件的視窗內,或使用者移動 InkOverlay 物件關聯視窗內的滑鼠時。 |
NewPackets | 發生于 InkOverlay 物件收到封包時。 |
畫 | 發生于 InkOverlay 物件完成重新繪製本身時。 |
繪畫 | 發生在 InkOverlay 物件重新繪製本身之前。 |
SelectionChanged | 發生于控制項內的筆跡選取已變更時,例如透過變更使用者介面、剪下和貼上程式或 Selection 屬性。 |
SelectionChanging | 發生于控制項內的筆跡選取即將變更時,例如透過變更使用者介面、剪下和貼上程式或 Selection 屬性。 |
SelectionMoved | 發生于目前選取範圍的位置已變更時,例如透過變更使用者介面、剪下和貼上程式或 Selection 屬性。 |
SelectionMoving | 發生于目前選取範圍的位置即將變更時,例如透過變更使用者介面、剪下和貼上程式或 Selection 屬性。 |
SelectionResized | 發生于目前選取範圍的大小已變更時,例如透過變更使用者介面、剪下和貼上程式或 Selection 屬性。 |
SelectionResizing | 發生于目前選取範圍的大小即將變更時,例如透過變更使用者介面、剪下和貼上程式或 Selection 屬性。 |
中風 | 當使用者在任何平板電腦上完成繪製新筆劃時發生。 |
StrokesDeleted | 會在筆劃從 Ink 屬性中刪除之後發生。 |
StrokesDeleting | 會在筆劃從 Ink 屬性中刪除之前發生。 |
SystemGesture | 發生于辨識系統手勢時。 |
TabletAdded | 發生于 將 IInkTablet 新增至系統時。 |
TabletRemoved | 從系統移除 平板電腦 時發生。 |
介面
InkOverlay類別會定義這些介面。
介面 | 描述 |
---|---|
IInkOverlay | 這個物件會實作 IInkOverlay COM 介面。 |
方法
InkOverlay類別具有這些方法。
方法 | 描述 |
---|---|
Draw | 設定矩形,以重新繪製 InkOverlay 物件內的筆跡。 |
GetEventInterest | 傳回特定 InkOverlay 物件事件的目前狀態,也就是正在接聽或使用事件。 |
GetGestureStatus | 傳回 InkOverlay 物件是否對特定手勢感興趣。 |
GetWindowInputRectangle | 擷取繪製筆跡的視窗矩形,以圖元為單位。 |
HitTestSelection | 決定在點擊測試期間叫用選取專案的部分。 |
SetAllTabletsMode | 此模式可讓 InkOverlay 物件從附加至平板電腦的任何平板電腦收集筆跡。 |
SetEventInterest | 設定是否應該接聽或使用特定事件。 |
SetGestureStatus | 在已知的手勢中設定 InkOverlay 物件的興趣。 |
SetSingleTabletIntegratedMode | 此模式可讓 InkOverlay 物件只從一部平板電腦收集筆跡。
InkOverlay物件會忽略來自其他平板電腦的筆跡。 |
SetWindowInputRectangle | 設定視窗矩形,以圖元為單位,用來將繪製的筆跡對應至視窗。 |
屬性
InkOverlay類別具有這些屬性。
屬性 | 存取類型 | 描述 |
---|---|---|
AttachMode |
讀取/寫入 |
取得或設定值,這個值會指定 InkOverlay 物件是附加在已知視窗後方還是前面。 |
AutoRedraw |
讀取/寫入 |
取得或設定值,指定當視窗失效時 ,InkOverlay 是否會重新繪製筆跡。 |
CollectingInk |
唯讀 |
取得值,這個值會指定筆跡目前是否正在 InkOverlay 物件上繪製。 |
CollectionMode |
讀取/寫入 |
取得或設定集合模式,判斷筆跡、手勢或兩者是否可辨識為使用者寫入。 |
資料指標 |
唯讀 |
取得可用於筆跡區域中的 Cursors 集合。 |
DefaultDrawingAttributes |
讀取/寫入 |
取得或設定預設 InkDrawingAttributes 物件,指定繪製和顯示筆跡時所使用的繪圖屬性。 |
DesiredPacketDescription |
讀取/寫入 |
取得或設定與 InkOverlay 物件上繪製之筆跡相關聯的封包層面感興趣。 |
DynamicRendering |
讀取/寫入 |
取得或設定值,這個值表示筆跡是否在繪製時呈現。 |
EditingMode |
讀取/寫入 |
取得或設定值,這個值表示 InkOverlay 是否處於筆跡模式、刪除模式或選取/編輯模式。 |
啟用 |
讀取/寫入 |
取得或設定值,指定 InkOverlay 物件是否收集手寫筆輸入。 |
EraserMode |
讀取/寫入 |
取得或設定值,這個值表示筆墨是由筆劃或點清除。 |
EraserWidth |
讀取/寫入 |
取得或設定值,指定橡皮擦筆尖的寬度。 |
Handle |
讀取/寫入 |
取得或設定 InkOverlay 物件所附加之視窗的控制碼。 |
筆跡 |
讀取/寫入 |
取得或設定與InkOverlay物件相關聯的InkDisp物件。 |
MarginX |
讀取/寫入 |
取得或設定沿著 X 軸的邊界,以圖元為單位。 |
MarginY |
讀取/寫入 |
取得或設定沿著 Y 軸的邊界,以圖元為單位。 |
MouseIcon |
讀取/寫入 |
取得或設定目前的自訂滑鼠圖示。 |
MousePointer |
讀取/寫入 |
取得或設定值,這個值表示當滑鼠位於物件的特定部分時所顯示的滑鼠指標類型。 |
轉譯器 |
讀取/寫入 |
取得或設定用來繪製筆 跡的 InkRenderer 物件。 |
選取項目 |
讀取/寫入 |
取得或設定InkOverlay控制項內目前選取的InkStrokes集合。 |
SupportHighContrastInk |
讀取/寫入 |
取得或設定值,指定當系統處於高對比模式時,筆跡是否只轉譯為一種色彩。 |
SupportHighContrastSelectionUI |
讀取/寫入 |
取得或設定值,指定當系統處於高對比模式時,是否以高對比繪製所有選取 UI。 |
Tablet |
唯讀 |
取得 InkOverlay 物件目前用來收集輸入的平板電腦裝置。 |
MFC 實作注意事項
如果您將 InkOverlay 物件附加至 CView 物件,請釋放 InkOverlay 物件以回應WM_DESTROY訊息,如下列範例所示:
BOOL CRecognitionAlternatesSampleCppView::OnWndMsg(UINT msg, WPARAM wp, PARAM lp, LRESULT *pLR)
{
if(WM_DESTROY == msg)
m_spInkOverlay.Release();
return CView::OnWndMsg(msg, wp, lp, pLR);
}
備註
在 C++ 中呼叫 CoCreateInstance 方法,即可具現化此物件。
InkOverlay物件非常適合記事和基本筆跡。 此物件的主要用途是將筆跡顯示為筆跡。
一般而言,此物件的執行時間使用者介面是透明視窗,具有不透明筆跡。
MouseDown、MouseMove、MouseUp和MouseWheel事件會以圖元傳回 x 座標和 y 座標,而不是與筆跡空間相關聯的 HIMETRIC 單位。 這是因為這些事件會取代手寫筆感知應用程式的滑鼠事件,而這些應用程式只會瞭解圖元。
警告
如果您要將 InkOverlay 物件的 AttachMode 屬性設定為 InFront,請在表單執行所在的執行緒中建立 InkOverlay 物件。 如果您的應用程式會在不同的執行緒中建立 InkOverlay 物件,且其 AttachMode 屬性設定為 InFront,可能會停止回應。
注意
InkOverlay物件無法在非 UI 執行緒上安全地釋放。
若要改善應用程式的效能,請在不再需要 InkOverlay 物件時處置您的 InkOverlay 物件。
如果您將 InkOverlay 物件附加至 CView 物件,請釋放 InkOverlay 物件以回應WM_DESTROY訊息,如下列範例所示:
BOOL CRecognitionAlternatesSampleCppView::OnWndMsg(UINT msg, WPARAM wp, PARAM lp, LRESULT *pLR)
{
if(WM_DESTROY == msg)
m_spInkOverlay.Release();
return CView::OnWndMsg(msg, wp, lp, pLR);
}
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows XP Tablet PC Edition [僅限傳統型應用程式] |
最低支援的伺服器 |
都不支援 |
標頭 |
|
程式庫 |
|