当手写笔在平板电脑上“抬起”时会发生什么?

时间:2008-09-17 06:23:35

标签: c++ windows events tablet-pc stylus-pen

我正在VC++/Win32/MFC处理遗留项目。最近,要求应用程序在 tablet pc 上运行,这引发了许多新问题。 我已经能够和这些问题一起工作,但我留下了一个我可以使用一些专家建议的方法。

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

在应用程序中这是不明智的。你不能提升台式机上的光标。所以我正在寻找的是对升力发生时会发生什么(就Windows消息等而言)的一个很好的概述。这是否只转换为焦点更改和鼠标悬停事件?我的错误似乎也涉及光标变化(虽然可能与电梯无关)。当然,意外的“提升”正在打破应用程序工具处理的状态。

所以有形的问题是:

  1. 手写笔“抬起”时会发生什么?记者?
  2. 可以使用哪些API调用来检测此问题?它是否只是转换为标准/值设置的标准消息?
  3. 当您的开发电脑是台式机时,有什么方法可以测试/模拟这个?我只是在这里失明吗? (我只能定期访问个人电脑)
  4. 什么代表平板电脑手写笔识别的正确行为或最佳做法?
  5. 感谢您的考虑, EE

4 个答案:

答案 0 :(得分:1)

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

首先:

  

当手写笔必须走出聚焦窗口以按下虚拟键盘上的按键时,您无法轻易地在窗口上保持“键盘焦点”。

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

  

当手写笔“抬起”时会发生什么?记者?

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

  

可以使用哪些API调用来检测此问题?它是否只是转换为标准/值设置的标准消息?

如上所述,如果你能得到压力值,你可以使用它。

  

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

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

  

什么代表平板电脑手写笔识别的正确行为或最佳做法?

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

希望这有帮助。

答案 1 :(得分:0)

据我了解,没有“升力”事件 - 当手写笔稍后被带回屏幕时,唯一的事件就会发生。当然,这取决于您的具体驱动程序等。

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

答案 2 :(得分:0)

  

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

在linux下你会得到“ProximityEvents”

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

答案 3 :(得分:0)

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

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