在C#/ .NET中为PostMessage()创建WM_TOUCH消息

时间:2013-02-27 16:42:22

标签: c# .net winapi multi-touch wm-touch

(有关背景信息,请参阅Composing a WM_TOUCH message for SendMessage(), Kinect as a multi-touch device,该问题基本上与我的问题相同,但其接受的答案实际上并没有回答这个问题。棘手的一点是不填写TOUCHINPUT结构,而是制作一个有效的触摸输入句柄。)

我想以令人讨厌的hackish方式模拟多点触控输入设备的存在,其概要如下:

while (true) {
  choose locations etc. for simulated touches;
  PostMessage(GetForegroundWindow(), WM_TOUCH, nTouches, ...);
}

棘手的一点就是标有“......”的空间。从WM_TOUCH消息的消费者的角度编写的MSDN文档不出所料地说,lParam消息的WM_TOUCH

  

一个触控输入句柄,可用于调用GetTouchInputInfo以检索有关此讯息的触点的详细信息。

我可以很容易地制作一个TOUCHINPUT结构数组,这是GetTouchInputInfo给你的结果。但这似乎与“触摸输入手柄”完全不同。 (例如,触摸输入句柄需要传递给CloseTouchInputHandle,而PostMessageSendMessage将会执行此操作。

是否可以(正式或非正式!)用户代码生成可以传递给PostMessage的有效触摸输入句柄?如果是,如何?

1 个答案:

答案 0 :(得分:0)