急!!!MFC中如何获取鼠标相对坐标??
我想通过双击,用鼠标双击的时候所在的相对坐标x和y(不是屏幕位置),赋值给docx和docy这两个变量。程序如下。但是实际运行的时候,仍然是鼠标的屏幕位置,求各位大侠帮助...
我想通过双击,用鼠标双击的时候所在的相对坐标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);
} 展开
但是实际运行的时候,仍然是鼠标的屏幕位置,求各位大侠帮助一下小弟!!!
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);
} 展开
3个回答
展开全部
参考一下
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);
}
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把鼠标坐标转换为窗口坐标
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
设置两个全局的坐标类
cpoint
pold和pcurrent
分别记录上一次按下左键时候的坐标和当前点的坐标,程序初始化的时候pold
=
pcurrent
;
void
cpendlg::onlbuttondown(uint
nflags,
cpoint
point)
{
pcurrent
=
point;
//你的画线代码
pold
=
pcurrent;
cdialog::onlbuttondown(nflags,
point);
}
cpoint
pold和pcurrent
分别记录上一次按下左键时候的坐标和当前点的坐标,程序初始化的时候pold
=
pcurrent
;
void
cpendlg::onlbuttondown(uint
nflags,
cpoint
point)
{
pcurrent
=
point;
//你的画线代码
pold
=
pcurrent;
cdialog::onlbuttondown(nflags,
point);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询