0

我想编写一个应用程序,将它收到的每条消息传递到另一个窗口。例如,我有一个应用程序,用户可以在其中按下一些键、将鼠标移到它上面等,我希望将所有这些消息传递给例如 MS Paint。

我该怎么做呢?有任何想法吗?据我所知,将击键发送到另一个窗口可能会出现问题,所以也请指教。

编辑

好吧,也许我会给你更多的描述我在找什么。

我的应用程序在表单上显示另一个应用程序的窗口。现在我想使用发送到我的应用程序表单的消息(如按键、鼠标移动等)来控制另一个窗口。

我一直在考虑将我的表单收到的所有消息传递到我有点“嵌入”到我自己的应用程序的窗口中。“嵌入”是指让应用程序窗口显示在我的表单上。

也许我的问题还有另一种解决方案。请指教。

感谢您的时间。

4

3 回答 3

4

一些消息(即输入消息)通过消息队列到达,其余的则直接传递到接收窗口。因此,您要求做的事情需要您执行以下所有操作:

  1. 实现一个顶级消息循环,从队列中检索消息并将它们发送到其他应用程序。
  2. 重新实现所有模式窗口循环以传递所有消息。
  3. 将进程中所有窗口的窗口过程替换为将所有消息传递到另一个应用程序的窗口过程。
  4. 寻找我没有提到的其他让消息到达的机会。

我无法想象这真的会解决你的问题,不管那个问题是什么。

于 2011-09-22T13:08:22.390 回答
1

转发消息绝对是可能且容易的,但它可能不会达到您的预期。看看这里

于 2011-09-22T13:11:41.413 回答
1

覆盖表单的 DefaultHandler() 并将它收到的每条消息发布到另一个表单。如果表单中有任何显式的消息处理程序甚至某些控件,那么您可能在 DefaultHandler() 中看不到这些消息。

于 2011-09-22T13:20:41.617 回答