获得鼠标屏幕坐标点击

Get mouse screen coordinates on click

本文关键字:屏幕坐标 鼠标      更新时间:2023-10-16

如何在用户单击鼠标左键后获得鼠标屏幕坐标(鼠标单击坐标-换句话说)。这是用FireBreath编写的插件。我想用:

FB::variant TestPluginAPI::Detect()
{
POINT pt;
if (WM_LBUTTONUP)
{
    GetCursorPos(&pt);
}
FB::VariantList Dtd = FB::variant_list_of(pt.x)(pt.y);
return Dtd;

它返回JavaScript数组Dtdpt.xpt.y在它,然后我使用这个数组来渲染这个坐标在我的页面上通过JS。这个只在页首给我鼠标。

然后我在if中尝试WM_LBUTTONUP == MK_RBUTTON;它会给我一些随机的大数字……我能做什么?
你能帮帮我吗?

如果你想在javascript函数中获得鼠标位置,你可以在插件中创建一个回调JSAPI函数,并在点击鼠标左键时调用它,参数为FB::VariantList的鼠标坐标。你可以通过重载从FB::PluginCore继承的类中的onMouseDown事件来检测鼠标点击。要注册onMouseDown事件,可以在header中使用以下代码:
BEGIN_PLUGIN_EVENT_MAP()
   EVENTTYPE_CASE(FB::MouseDownEvent, onMouseDown, FB::PluginWindow) END_PLUGIN_EVENT_MAP()

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

onMouseDown可以定义为-
bool MirrarOrnaments::onMouseDown(FB::MouseDownEvent *evt, FB::PluginWindow *)
{

   if(evt->m_Btn == FB::MouseButtonEvent::MouseButton_Left)
   {
     /**
      * apiPtr is the pointer to FB::JSAPIPtr
      * mousePositionCallback is the JSAPI function which takes variant list of mouse
      * co-ordinates as argument
      */
      apiPtr->invoke("mousePositionCallback", FB::variant_list_of(evt->m_x)(evt->m_y));
   }
}

希望这是你想问的。你的问题有点模糊

WM_LBUTTONUP是一个WinAPi函数,所以你应该可以访问与消息一起的lParam。

xPos = GET_X_LPARAM(lParam); 
yPos = GET_Y_LPARAM(lParam);