【发布时间】:2012-06-12 15:52:43
【问题描述】:
我即将将child window 附加到外部应用程序。子窗口将是一个无模式对话框。由于我不拥有外部应用程序(实际上是 Microsoft FSX)的源代码,我不知道如何挂钩到消息循环或父窗口本身的回调 LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM)。
我的附加应用程序在它自己的进程中运行,所以我是否需要编写自己的消息循环,或者我的回调是否会被父级的消息泵调用?
前进的正确方法是什么?
-- 编辑关于SetWindowsHookEx 功能的答案--
值得注意的:
【问题讨论】:
-
你是怎么贴上去的?只是 SetParent?如果是这样,那么它会使用您的消息泵和处理程序,但可能会导致“奇怪”。
-
我只是在创建父窗口句柄时设置了它。没有“古怪”的正确方法是什么?
-
托管来自不同进程和 UI 线程的控件会导致焦点、激活等问题。没有主机进程窗口的帮助,没有标准的方法可以做到这一点。没有它帮助的最好方法是 DLL 注入,因此它在进程和主 UI 线程中运行。
-
谢谢,非常感谢您的反馈!
标签: c++ windows winapi message-pump