我正在開發使用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