我正在使用 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 作为单个进程运行。
任何帮助表示赞赏。
谢谢!