GetMousePos 처럼 좌표 사용하는 방법은?

안녕하세요,
hwpctrl api 문서를 보다가 GetMousePos 부분이 있길래 문의 드립니다.

  1. 해당 함수로 구해진 x,y 좌표를 저장했다가 다시 해당 위치로 캐럿을 이동하거나 하는 방법이 있을까요?

  2. 이 함수는 어떤 경우 사용을 위해 만들어진걸까요?

안녕하세요.

GetMousePos는 문서 내의 마우스를 클릭 했을 때 해당 마우스의 위치가 문서 내의 논리적인 위치 값을 알고자 할 때 사용하며 보통 OnMouseLButtonDown 이벤트와 같이 사용합니다.
API 문서 내의 있는 예제를 같이 남겨둡니다.

  • Win32 API (GetCursorPos)의 마우스의 위치는 px 단위의 스크린 좌표를 반환하며
    GetMousePos는 한글 앱에서 적용되는 DPI (i inch = 7200 HWPUNIT)의 논리적인 좌표값으로 계산되어 반환합니다.
function HwpCtrl_OnMouseLButtonDown(x,y)
{
	HwpControl.view_mousex_px.value = x;
	HwpControl.view_mousey_px.value = y;

	var MousePosSet = pHwpCtrl.GetMousePos(0, 0);
	var xrelto = MousePosSet.Item("XRelto");
	var yrelto = MousePosSet.Item("YRelTo");
	var page = MousePosSet.Item("Page");
	var pagex = MousePosSet.Item("X");
	var pagey = MousePosSet.Item("Y");
	HwpControl.page.value = page + 1;
	HwpControl.page_mousex_mm.value = Math.floor(pagex / 283.465); // 1mm == 283.465 HWPUNIT
	HwpControl.page_mousey_mm.value = Math.floor(pagey / 283.465);
	MousePosSet = pHwpCtrl.GetMousePos(1, 1);
	var paperx = MousePosSet.Item("X");
	var papery = MousePosSet.Item("Y");
	HwpControl.paper_mousex_mm.value = Math.floor(paperx / 283.465);
	HwpControl.paper_mousey_mm.value = Math.floor(papery / 283.465);
}

⓵ 마우스 위치보다는 현재 캐럿의 위치를 알고자 한다면 GetPos, SetPos를 사용하면 됩니다.
⓶ 위 설명으로 대신합니다.

감사합니다.

1개의 좋아요

네. 문서 API 잘 확인 했습니다.
마우스 컨트롤해서 움직여보면 되겠네요.

감사합니다.