【发布时间】:2011-02-21 12:19:04
【问题描述】:
我正在开发具有两个 Windows 窗体的 C# 应用程序。两种形式都是全屏的,一种形式位于另一种形式的顶部作为透明覆盖。底部表单包含一个网络浏览器(也是全屏浏览器)。我正在跟踪透明覆盖表单上的触摸输入,以便在屏幕上捕获手势并绘制按钮和其他控件。我需要做的是将覆盖表单在其 WndProc 函数中获取的所有 Windows 消息发送到下面的表单(或表单中的 Web 浏览器控件,因为基本上所有较低的表单都用于包含)。
基本上我只需要处理叠加层上的手势,所有鼠标消息仍需要传输到网络浏览器以提供某些功能。
我已经尝试过根据覆盖层的消息调用较低表单的 WndProc 方法的天真方法。 (同样,我尝试将其进一步传递给浏览器控制窗口的 WndProc)。这些方法都不起作用。我还尝试在尝试此操作时将 Message 对象的 HWnd 参数简单地交换为较低窗体/浏览器的句柄,但这也不起作用。
那么,谁能想到更多的方法来尝试,或者可能是在窗体之间传递 windows 消息的正确方法?
谢谢, 亚历克斯
【问题讨论】:
-
为什么你只限制自己使用 WndProc 消息?
-
这就是我目前接收触摸输入的方式。但是,我相信触摸输入也被视为鼠标输入,所以我想还有一个问题是将所有鼠标事件传递到较低形式的简单/干净的方法。
标签: c# forms touch messages wndproc