急!!!MFC中如何获取鼠标相对坐标??

来源:百度知道 编辑:UC知道 时间:2024/05/14 04:02:54
我想通过双击,用鼠标双击的时候所在的相对坐标x和y(不是屏幕位置),赋值给docx和docy这两个变量。程序如下。

但是实际运行的时候,仍然是鼠标的屏幕位置,求各位大侠帮助一下小弟!!!

void CLYHchxuView::OnLButtonDblClk(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

ClientToScreen(&point);
docx=point.x;
docy=point.y;

Invalidate();
CView::OnLButtonDblClk(nFlags, point);
}

参考一下
point
是相对CLYHchxuView的坐标
如果你要获的是相对CLYHchxuView左上角的坐标
就不需要转换
如果你你要获的是相对程序主窗口左上角的坐标
可以这样算
void CLYHchxuView::OnLButtonDblClk(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

CRect rc;
GetParent()->GetWindowRect(&rc);
ClientToScreen(&point);
docx=point.x-rc.left;
docy=point.y-rc.top;
Invalidate();
CView::OnLButtonDblClk(nFlags, point);
}

用ScreenToClient把鼠标坐标转换为窗口坐标