我正在开发使用Firebreath一个没有窗户的插件,我要赶作进一步处理特定的消息,我能够做到这一点,但这样的消息的其余“丢失“ 我认为。互联网Explorer_Server(IE9)处理窗口消息
我有这样的代码挂钩的消息循环:
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作为一个进程运行。
任何帮助表示赞赏。
谢谢!
使用'SetWindowLongPtr'和'CallWindowProc'解决了这个问题,但仍然有IE浏览器,重新绘制本身的方式解决问题。 – 2012-07-31 18:08:06