2013-05-12 3 views
0

사용자가 마우스 왼쪽 버튼을 클릭 한 직후에 마우스 스크린 좌표를 가져 오는 방법은 무엇입니까? FireBreath로 작성된 플러그인 용입니다. 은 내가 사용하는 셈되었다가 pt.x과의 pt.y와 자바 스크립트 배열 Dtd을 반환하는 것클릭시 마우스 화면 좌표 가져 오기

FB::variant TestPluginAPI::Detect() 
{ 
POINT pt; 

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

, 나는 이것이 JS를 통해 내 페이지에서 좌표 렌더링이 배열을 사용하고 있습니다. 이 페이지는 페이지 시작시에만 마우스 코스트를 제공합니다.

그런 다음 WM_LBUTTONUP == MK_RBUTTON을 시도했습니다. if; 그것은 나에게 무작위로 거대한 숫자를 준다. .. 나는 무엇을 할 수 있냐?
친절하게 도와 주시겠습니까?

답변

2

, 당신은 당신의 플러그인에 콜백 JSAPI 기능을하고 그것을 호출 할 수 있습니다 . FB :: PluginCore에서 상속받은 클래스의 onMouseDown 이벤트를 오버로드하여 마우스 클릭을 감지 할 수 있습니다. 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));
   }
}

희망 -
BEGIN_PLUGIN_EVENT_MAP()
   EVENTTYPE_CASE(FB::MouseDownEvent, onMouseDown, FB::PluginWindow) END_PLUGIN_EVENT_MAP()

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

하면 onMouseDown는 다음과 같이 정의 할 수 있습니다. 귀하의 질문은 모호합니다.

+0

고마워요, 내가 원하는대로 맞는 것 같습니다. –

+0

당신은 나에게이 apiPtr이 어떻게 내 코드를 어떻게 볼 수 있는지에 대한 조언을 해줄 수 있는가? 나는 정확히 어떻게 쓸 수 있을지, 어떻게 받아 들일 수 있는가? –

+0

apiPtr은 createJSAPI에서 반환하는 FB :: JSAPIPtr이다. 기능. 당신은 이것을 다음과 같이 지정할 수 있습니다 - apiPtr = PluginAPIPtr (새로운 PluginAPI (FB :: ptr_cast (shared_from_this()), m_host))); –

1

WM_LBUTTONUP은 WinAPi 함수이므로 메시지와 함께 사용되는 lParam에 액세스해야합니다. 당신이 당신의 자바 스크립트 함수에서 마우스 위치를 얻고 싶은 경우에 마우스 왼쪽 버튼으로 FB :: VariantList 마우스 좌표의 인수를 클릭하면

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

lParam? "액세스 권한"이란 무엇입니까? 그것은 창 함수의 일부입니까? 하지만 브라우저 용 플러그인이라면 "액세스"할 수 있습니까? –

+0

winapi를 사용하여 질문에 태그를 지정하고 WM_LBUTTONUP을 사용 했으므로 lParam이 포함 된 Windows 메시지 이벤트를 받았다고 가정했습니다. 이 WM_LBUTTONUP은 어디에서 받았습니까? lParam은 추가 정보이며 버튼 업 이벤트의 경우 이벤트 발생시 현재 X/Y 위치를 보냅니다. – Devolus

+0

내 윈도우의 윈도우 메시지 이벤트에 상관없이 클릭시 마우스 클릭을받을 수 있습니까? 지금 당장 조금 혼란스러워서 브라우저 창에서 사용할 수 있습니까? –