InkOverlay 类
表示一个 对象,该对象适用于注释方案,其中用户不关心对墨迹执行识别,而是对墨迹的大小、形状、颜色和位置感兴趣。
) 设置 WS_EX_TRANSPARENT 属性的 GroupBox 等透明控件 (创建 InkOverlay 控件将阻止 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 |
读取/写入 |
获取或设置一个值,该值指定橡皮擦笔尖的宽度。 |
Handle |
读取/写入 |
获取或设置 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 对象非常适合记笔记和基本涂鸦。 此对象的主要用途是将墨迹显示为墨迹。
通常,此对象的运行时用户界面是带有不透明墨迹的透明窗口。
MouseDown、MouseMove、MouseUp 和 MouseWheel 事件以像素为单位返回 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 Tablet PC Edition [仅限桌面应用] |
最低受支持的服务器 |
无受支持的版本 |
标头 |
|
库 |
|