InjectTouchInput()函数和POINTER_TOUCH_INFO成员

时间:2014-08-11 17:20:46

标签: c++ winapi windows-8 touch windows-8.1

我已将Windows API触摸功能包装到我的包装器类中,并成功注入了触摸功能。指定我正在使用的触摸坐标" ptPixelLocation" POINTER_TOUCH_INFO结构的成员。所以,像这样:

POINTER_TOUCH_INFO pTouchInfo;
memset(&pTouchInfo, 0, sizeof(POINTER_TOUCH_INFO));
pTouchInfo.pointerInfo.ptPixelLocation.x = myDesiredX;
pTouchInfo.pointerInfo.ptPixelLocation.y = myDesiredY;

这很好用,我能够成功地将触摸注入我的两个触摸屏显示器。但是,当我打开两个触摸显示器并扩展桌面时,某些功能(例如Windows Charms栏)不起作用。但是当我只切换ONE显示器时,或者当我在BOTH屏幕上复制桌面时,Charms栏就可以开始工作了。

这让我想到也许我应该使用" ptPixelLocationRaw"而不是" ptPixelLocation"指定触摸位置。问题是我们用原始坐标理解了什么,以及它与(0,0)有什么关系,这是主要监视器的上部左侧角。

所以,理想情况下,我希望看到此代码正常工作:

POINTER_TOUCH_INFO pTouchInfo;
memset(&pTouchInfo, 0, sizeof(POINTER_TOUCH_INFO));
pTouchInfo.pointerInfo.ptPixelLocationRaw.x = myDesiredX;//after some conversion
pTouchInfo.pointerInfo.ptPixelLocationRaw.y = myDesiredY;//after some conversion

有谁知道RAW COORDINATES是什么意思?

0 个答案:

没有答案