当手写笔在平板电脑上“抬起”时会发生什么?
-
09-06-2019 - |
题
我正在从事一个遗留项目 VC++/Win32/MFC
. 。最近,要求应用程序在 平板电脑, ,这带来了许多新问题。我已经能够处理并围绕这些问题进行工作, 但我还剩下一个可以使用一些专家建议的地方。
我有一个特殊的错误,是由手写笔从活动表面“抬起”而引起的。基本上,鼠标光标会消失,然后当您将其“按”回屏幕上时又会重新出现。
申请中没有考虑到这一点是有道理的。你不能 举起 台式电脑上的光标。因此,我正在寻找的是对电梯发生时发生的情况(在 Windows 消息等方面)的良好概述。这是否仅意味着焦点更改和鼠标悬停事件?我的错误似乎还涉及光标更改(尽管可能与升降机无关)。当然,意外的“提升”正在破坏应用程序的工具处理状态。
因此,切实的问题是:
- 当手写笔“抬起”时会发生什么?新闻界?
- 可以使用哪些 API 调用来检测这一点?它是否只是转换为设置了标志/值的标准消息?
- 当您的开发电脑是台式机时,测试/模拟此功能的好方法是什么?我只是盲目地在这里吗?(我只能定期使用平板电脑)
- 什么代表平板电脑手写笔意识的正确行为或最佳实践?
感谢您的考虑,EE
解决方案
作为一名平板电脑用户,我可以回答您的一些问题。
第一的:
当手写笔必须拖出聚焦窗口才能按下虚拟键盘上的按键时,您无法轻松地将“键盘焦点”保持在窗口上。
我使用过的大多数虚拟键盘(Windows 平板电脑输入面板和 ubuntu 下的一个)都允许他们输入的程序保持“键盘焦点”。
当手写笔“抬起”时会发生什么?新闻界?
在Windows下,压力值下降,但除此之外,没有任何事件。(我不知道linux。)
可以使用哪些 API 调用来检测这一点?它是否只是转换为设置了标志/值的标准消息?
如上所述,如果您可以获得压力值,则可以使用它。
当您的开发电脑是台式机时,测试/模拟此功能的好方法是什么?我只是盲目地在这里吗?(我只能定期使用平板电脑)
当手写笔放在其他地方时,指针的全局坐标会发生变化,因此,您可以使用任何允许更改全局指针值的东西来模拟指针的突然移动。(Java 中的 Robot 类使这变得相当简单。)
什么代表平板电脑手写笔意识的正确行为或最佳实践?
我建议你阅读微软的说法,MSDN 网站上有很多优秀的文章。(http://msdn.microsoft.com/en-us/library/ms704849(VS.85).aspx)我指出的是,应用程序上的按钮的大小会产生巨大的不同。
希望这有帮助。
其他提示
据我了解,不存在“抬起”事件——唯一的事件发生在手写笔稍后返回屏幕时。当然这取决于你具体的驱动等等。
更糟糕的是,您所描述的错误可能只需使用典型的鼠标即可重现。尝试尽可能快地移动鼠标——它几乎肯定会同时跳跃几个像素。如果您将鼠标设置配置为最高指针速度,甚至可以是数十个或数百个。一次更新后,鼠标可能会达到 100,100。下一次更新可能是 200,300。
在Windows下,压力值下降,但除此之外,没有任何事件。(我不知道linux。)
在linux下你会得到“ProximityEvents”
这些事件 WT_PROXIMITY 很可能在 Windows 中可用(请参阅: http://www.wacomeng.com/devsupport/ibmpc/wacomwindevfaq.html )
@Greg - 澄清一下,这是一台内置集成平板电脑和手写笔的笔记本电脑。该设备没有专用键盘(它是触摸屏上的虚拟键盘),并且不是 wacom 输入设备。对困惑感到抱歉。
似乎有一个 软件开发工具包 对于 Microsoft Windows XP Tablet PC 版本,可能能够获取压力等特殊详细信息。但是,我知道必须与现有的非平板电脑感知应用程序具有一定程度的标准兼容性。我想我可以尝试在平板电脑上安装 Spy++ 并尝试过滤到特定的消息/事件。