MFC中,我能过GetCursorPos()来获取鼠标当前的屏幕坐标,但是我想获取当前窗口的坐标。

MFC中,我能过GetCursorPos()来获取鼠标当前的屏幕坐标,但是我想获取当前窗口的坐标。,第1张

有现成的ScreenToClient函数,你可以百度搜一下。

例:

void CTest25Dlg::OnButton1()

{

CRect r(0,0,100,100);

CPoint pt(0,0);

ScreenToClient(&r);

ScreenToClient(&pt);

}

执行下面的两行后,r,pt的值变成了相对对话框左上角的值

首先在视图类(或框架类)中添加一个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中了

CRect r(0,0,100,100); //控件区域

CPoint pt(0,0);

ScreenToClient(&r);

ScreenToClient(&pt);

参考一下

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);

}

以上就是关于MFC中,我能过GetCursorPos()来获取鼠标当前的屏幕坐标,但是我想获取当前窗口的坐标。全部的内容,包括:MFC中,我能过GetCursorPos()来获取鼠标当前的屏幕坐标,但是我想获取当前窗口的坐标。、mfc单击鼠标左键获得当前鼠标的坐标、mfc 获取鼠标坐标 我需要在某个控件内获取 不是整个对话框等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9279578.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存