在Internet Explorer_Server(IE9)中处理窗口消息
Processing windows messages in Internet Explorer_Server (IE9)
我正在使用Firebreath开发一个无窗口插件,我想捕获一个特定的消息进行进一步处理,我可以这样做,但我认为其余的消息都"丢失"了。
我有这个代码来挂接消息循环:
bool myPlugin::onWindowAttached(FB::AttachedEvent *evt, FB::PluginWindow* pluginwin)
{
FB::PluginWindowlessWin* win = dynamic_cast<FB::PluginWindowlessWin*>(pluginwin);
FBLOG_INFO("", win->getHWND()); //getHWND returns the HWND of the Internet Explorer_Server window (get by using Spy++)
SubclassWindow(win->getHWND(), (WNDPROC)&myPlugin::WndProc);
return true;
}
这就是处理功能:
LRESULT CALLBACK myPlugin::WndProc(HWND hWindow, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg) {
case (WM_ERASEBKGND):
return 1;
}
return DefWindowProc(hWindow, msg, wParam, lParam);
}
这在IE9上可以正常工作(我这样做是因为我在重新绘制图像时遇到了一些问题),但点击消息和任何其他消息都没有得到处理;因此,如果一个按钮和我的插件在同一个页面上,它将无法点击。
我将IE9作为一个单独的进程运行。
感谢您的帮助。
谢谢!
您没有调用上一个HWND的wndproc。普遍调用DefWindowProc()是不正确的。当您对HWND进行子类化时,您需要获取旧wndproc的地址,并将不处理的消息传递给它,而不是DefWindowProc()。
我不知道该怎么做。
相关文章:
- 处理闪烁窗口事件
- 处理身份验证弹出窗口在wxWebView
- 如何在 c++ 窗口中将参数和返回的退出值传递到批处理文件/从批处理文件获取返回的退出值
- Wxwidgets - 如何添加调整大小事件处理程序以使"X"绘图随窗口调整大小?
- 窗口上信号处理程序的异步安全写入函数
- C++ winAPI 无法处理子窗口事件
- 如何处理窗口的消息?
- 如何处理来自多个窗口的消息
- 获取特定监视器的处理程序以在其中放置弹出窗口
- 如果窗口服务被杀,如何处理事件
- 窗口后台处理程序究竟如何确定它将发送到打印处理器的数据类型?
- 窗口如何处理加载两个不同版本的 DLL
- 如何让 wndproc 处理发送到多个窗口的消息
- 如何处理 WXWIDGETS 中父窗口的鼠标事件
- 创建、处理和在窗口QTCreator之间切换
- 如何将事件处理程序添加到桌面窗口
- 窗口创建错误 - 可能是事件处理
- 在Internet Explorer_Server(IE9)中处理窗口消息
- 后处理窗口视频输出
- C++线程多任务处理[窗口]