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 属性)时发生。
选择更改 当控件中的墨迹选择即将更改(例如通过对用户界面的更改、剪切和粘贴过程或 Selection 属性)时发生。
SelectionMoved 当当前所选内容的位置发生更改时发生,例如通过对用户界面的更改、剪切和粘贴过程或 Selection 属性。
SelectionMoving 当当前所选内容的位置即将更改时发生,例如通过对用户界面的更改、剪切和粘贴过程或 Selection 属性。
SelectionResized 当当前所选内容的大小发生更改时发生,例如通过对用户界面的更改、剪切和粘贴过程或 Selection 属性。
SelectionResizing 当当前所选内容的大小即将更改时发生,例如通过对用户界面的更改、剪切和粘贴过程或 Selection 属性。
中风 当用户在任何平板电脑上完成绘制新笔划时发生。
StrokesDeleted 在从 Ink 属性中删除笔划后发生。
StrokesDeleting 在从 Ink 属性中删除笔划之前发生。
SystemGesture 识别系统手势时发生。
TabletAdded IInkTablet 添加到系统时发生。
TabletRemoved 从系统中删除 平板电脑 时发生。

接口

InkOverlay 类定义这些接口。

接口 说明
IInkOverlay 此对象实现 IInkOverlay COM 接口。

方法

InkOverlay 类具有这些方法。

方法 说明
设置一个矩形,在该矩形中重绘 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
读取/写入
获取或设置一个值,该值指定橡皮擦笔尖的宽度。
处理
读取/写入
获取或设置 InkOverlay 对象附加到的窗口的句柄。
墨迹
读取/写入
获取或设置与 InkOverlay 对象关联的 InkDisp 对象。
MarginX
读取/写入
获取或设置沿 x 轴的边距(以像素为单位)。
MarginY
读取/写入
获取或设置沿 y 轴的边距(以像素为单位)。
MouseIcon
读取/写入
获取或设置当前的自定义鼠标图标。
MousePointer
读取/写入
获取或设置一个值,该值指示鼠标位于对象的特定部分时出现的鼠标指针的类型。
呈现器
读取/写入
获取或设置用于绘制墨迹的 InkRenderer 对象。
选择
读取/写入
获取或设置 InkOverlay 控件中当前选定的 InkStrokes 集合。
SupportHighContrastInk
读取/写入
获取或设置一个值,该值指定当系统处于高对比度模式时,墨迹是否仅呈现为一种颜色。
SupportHighContrastSelectionUI
读取/写入
获取或设置一个值,该值指定当系统处于高对比度模式时,是否以高对比度方式绘制所有选择 UI。
平板电脑
只读
获取 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 对象非常适合记笔记和基本涂鸦。 此对象的主要用途是将墨迹显示为墨迹。

通常,此对象的运行时用户界面是一个透明窗口,带有不透明墨迹。

MouseDownMouseMove、MouseUpMouseWheel 事件以像素为单位返回 x 坐标和 y 坐标,而不是与墨迹空间关联的 HIMETRIC 单位。 这是因为这些事件替换了笔不知道应用程序的鼠标事件,并且这些应用程序只了解像素。

注意

如果要将 InkOverlay 对象的 AttachMode 属性设置为 InFront,则在运行窗体的线程中创建 InkOverlay 对象。 如果 InkOverlay 对象在不同的线程中创建并且其 AttachMode 属性设置为 InFront,则应用程序可能会停止响应。

注意

无法安全地在非 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 平板电脑版 [仅限桌面应用]
最低受支持的服务器
无受支持的版本
标头
Msinkaut.h (还需要 Msinkaut_i.c)

InkObj.dll

另请参阅

InkCollector 类

InkPicture 控件参考

InkEdit 控件参考