0

我正在处理一个遗留项目VC++/Win32/MFC最近,应用程序在平板电脑上运行成为了一项要求,这带来了许多新问题。我已经能够处理并解决这些问题,但剩下的问题是我可以使用一些专家建议。

我有一个特殊的错误,它是由触控笔从活动表面“抬起”引起的。基本上,鼠标光标会消失,然后当您将其“按”回屏幕时重新出现。

这是有道理的,这是在应用程序中下落不明。您无法在台式电脑上抬起光标。所以我正在寻找的是一个很好的概述,当电梯发生时会发生什么(在 Windows 消息等方面)。这是否仅转化为焦点更改和鼠标悬停事件?我的错误似乎也涉及光标更改(尽管可能与提升无关)。当然,意外的“提升”正在破坏应用程序工具处理的状态。

所以具体的问题是:

  1. 当手写笔“抬起”时会发生什么?出版社?
  2. 可以使用哪些 API 调用来检测这一点?它是否只是转换为设置了标志/值的标准消息?
  3. 当您的开发电脑是台式机时,有什么好方法来测试/模拟这个?我只是在这里瞎飞吗?(我只能定期访问平板电脑)
  4. 什么代表平板电脑手写笔意识的正确行为或最佳实践?

谢谢你的考虑,ee

4

4 回答 4

1

作为平板电脑用户,我可以回答您的一些问题。

第一的:

当触控笔必须拖出焦点窗口以按下虚拟键盘上的键时,您不能很容易地将“键盘焦点”保持在窗口上。

我使用过的大多数虚拟键盘(Windows 平板电脑输入面板和 ubuntu 下的一个)都允许他们输入的程序保持“键盘焦点”。

当手写笔“抬起”时会发生什么?出版社?

在 Windows 下,压力值下降,但除此之外,没有任何事件。(我不知道Linux。)

可以使用哪些 API 调用来检测这一点?它是否只是转换为设置了标志/值的标准消息?

如上所述,如果您可以获得压力值,则可以使用它。

当您的开发电脑是台式机时,有什么好方法来测试/模拟这个?我只是在这里瞎飞吗?(我只能定期访问平板电脑)

当手写笔放在别处时,指针的全局坐标会发生变化,因此,您可以使用任何允许您更改全局指针值的东西来模拟突然的指针移动。(Java 中的 Robot 类使这变得相当容易。)

什么代表平板电脑手写笔意识的正确行为或最佳实践?

我建议您阅读 Microsoft 所说的,MSDN 网站上有许多优秀的文章。( http://msdn.microsoft.com/en-us/library/ms704849(VS.85).aspx ) 我会指出你的应用程序按钮的大小会产生巨大的差异。

希望这有帮助。

于 2008-09-17T06:36:51.027 回答
0

据我了解,没有“抬起”事件——唯一的事件发生在稍后将触控笔带回屏幕时。当然,这取决于您的特定驱动程序等。

更糟糕的是,您描述的错误可能仅用典型的鼠标即可重现。尝试尽可能快地移动鼠标——它几乎肯定会一次跳跃几个像素。如果您将鼠标设置配置为最高指针速度,甚至几十个或数百个。一次更新,鼠标可能在 100,100。下一次更新,可能是 200,300。

于 2008-09-17T06:40:38.410 回答
0

在 Windows 下,压力值下降,但除此之外,没有任何事件。(我不知道Linux。)

在linux下你会得到“ProximityEvents”

这些事件 WT_PROXIMITY 很可能在 Windows 中可用(请参阅:http ://www.wacomeng.com/devsupport/ibmpc/wacomwindevfaq.html )

于 2008-09-17T07:59:13.340 回答
0

@Greg - 澄清一下,这是一台内置集成平板电脑和手写笔的笔记本电脑。该设备没有专用键盘(它是触摸屏上的虚拟键盘),也不是 wacom 输入设备。对困惑感到抱歉。

似乎有一个适用于 Microsoft Windows XP Tablet PC Edition 的SDK,它可能具有获取压力等特殊细节的能力。但是,我知道必须与现有的非平板电脑感知应用程序具有某种程度的标准兼容性。我想我可以尝试在平板电脑上安装 Spy++ 并尝试过滤到特定的消息/事件。

于 2008-09-17T08:25:46.897 回答