2013-05-29 51 views
0

想要通過使用FireBreath編寫的C++插件在瀏覽器窗口中單擊鼠標時觸發功能。 但隨着代碼下面沒有任何事情發生點擊。 得到了下面的代碼在TestPluginAPI.h無法在瀏覽器窗口中檢測點擊以觸發功能

BEGIN_PLUGIN_EVENT_MAP() 
EVENTTYPE_CASE(FB::MouseDownEvent, onMouseDown, FB::PluginWindow) 
END_PLUGIN_EVENT_MAP() 
virtual bool onMouseDown(FB::MouseDownEvent *evt, FB::PluginWindow *); 

而這種代碼testPluginAPI.cpp

bool TestPluginAPI::onMouseDown(FB::MouseDownEvent *evt, FB::PluginWindow *) 
{ 

    if(evt->m_Btn == FB::MouseButtonEvent::MouseButton_Left) 
    { 
     fire_showcrd(FB::variant_list_of(evt->m_x)(evt->m_y)); 
    } 
    return 0; 
} 

Fire_showcrd(...)進行單獨測試,它的工作。點擊檢測部分似乎有什麼問題,但是什麼?

+1

我從你說過的話想當你點擊插件區域時你試圖捕獲鼠標點擊?檢查以確保您沒有任何意外浮在插件頂部的任何內容。還要確保你沒有定義FB_GUI_DISABLED,並且AttachedEvent正在被解僱 – taxilian

回答

1

FireBreath中的PluginWindow事件僅適用於插件所在的區域,而不適用於網頁上的其他位置。只有使用此方法單擊插件本身時纔會獲得事件,並且如果有任何DOM元素懸停在您的插件上(即使您的插件由於窗口而在前面繪製),您最終可能會失去該元素的事件。

您可以使用javascript獲取整個頁面的點擊事件。

相關問題