首先在视图类(或框架类)中添加一个CPoint m_pt的成员变量,然后在视图类中添加鼠标左击消息处理WM_LBUTTONDOWN即为:
void CMy48View::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
m_pt=point;
CView::OnLButtonDown(nFlags, point);
}这样就将鼠标左键的点保存在m_pt中了
要实现这样的效果需要知道相似位置在这两幅图中的坐标以及这两个控件在对话框上的坐标,然后通过加减运算就可以得到图像上的相似区域在对话框的坐标,直接将这两个坐标用直线连接就可以了。
为此,如何获得控件在对话框上的坐标是关键问题。编写了如下的测试小程序,目的是将两个picture控件中的点用直线连接起来,比较直观的是picture控件的四个角,所以程序中是将控件的拐角连接起来。首先在对话框上并排放置两个同样大小的picture控件,将他们的标识分别设成IDC_LEFT和IDC_RIGHT,然后添加两个编辑框用于显示picture控件的大小,给这两个编辑框添加相应的数据成员m_row和m_colume。添加一个按钮用于连接picture控件中的点,为这个按钮添加
成员函数
OnMatch()
。
void
CControlDlg::OnMatch(){//
TODO:
Add
your
control
notification
handler
code
here
CRect
rectL,rectR;
参考一下
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=pointx-rcleft;
docy=pointy-rctop;
Invalidate();
CView::OnLButtonDblClk(nFlags, point);
}
窗口上相应WM_MOUSEMOVE消息
编写消息相应函数就行了,“鼠标移动坐标的返回”啥意思?
OnMouseMove函数的参数CPoint pt就是鼠标在当前窗口客户区的坐标了。
还可以使用 GetCursorPos(&ptScreen);ScreenToClient(&ptScreen);
来获取鼠标光标的坐标。
文字显示 TextOut();
以上就是关于mfc单击鼠标左键获得当前鼠标的坐标全部的内容,包括:mfc单击鼠标左键获得当前鼠标的坐标、MFC如何获取控件在对话框上的位置坐标、急!!!MFC中如何获取鼠标相对坐标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)