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(...)個別にテストされ、動作しています。クリック検出部分がおかしいようですが、何か?

4

1 に答える 1

1

FireBreath の PluginWindow イベントは、プラグインが存在する領域にのみ適用され、Web ページの他の場所には適用されません。このメソッドを使用してプラグイン自体がクリックされた場合にのみイベントを取得します。DOM 要素がプラグインの上にある場合 (ウィンドウ化されているためにプラグインが前面に描画されている場合でも)、その要素へのイベントが失われる可能性があります。

JavaScript を使用して、ページ全体のクリック イベントを取得できます。

于 2013-05-29T19:51:08.383 に答える