MFC 关于获取鼠标坐标
答案:2 悬赏:0 手机版
解决时间 2021-11-29 07:00
- 提问者网友:姑娘长的好罪过
- 2021-11-28 08:06
MFC 关于获取鼠标坐标
最佳答案
- 五星知识达人网友:白昼之月
- 2021-11-28 09:31
添加消息映射啊
void CThreadDlg::OnLButtonDown(UINT nFlags, CPoint point)
在消息映射的出来函数中,入参就有鼠标CPoint类,里面就有鼠标坐标point.x point.y追问我是想自动获取鼠标坐标 而不是通过单击获取追答那就是鼠标移动时候的消息映射
void CThreadDlg::OnMouseMove(UINT nFlags, CPoint point)
如果不想一直获得的话 可以通过某种条件来达成
比如 定时器间隔固定时间获取一次追问我的代码可以获得数据并显示 只是不是我想要的而已
我现在想要相对静态控件的鼠标坐标,而不是相对客户区的
还有就是 现在鼠标移动到静态控件上没有数据产生了 只有移动到没有被IDC-show遮盖的客户区才会有数据产生追答说下我的理解和方案 看看可否参考
1.获取静态控件矩形大小和左边
2.鼠标映射函数
3.判断鼠标移是否动到静态控件矩形大小内,是的话触发事件,
4.获取此时鼠标坐标
至于想相对静态控件坐标也好办,计算鼠标坐标和静态控件坐标差距就好了
如果想的不对,继续讨论,下面我试了以下,可以的
void CThreadDlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CRect rect_Cemian1;
GetDlgItem(IDC_STATIC_TEST)->GetWindowRect(rect_Cemian1);
ScreenToClient(rect_Cemian1);
if (PtInRect(&rect_Cemian1,point))
{
AfxMessageBox("fadsfadsf");
}
CDialog::OnMouseMove(nFlags, point);
}
void CThreadDlg::OnLButtonDown(UINT nFlags, CPoint point)
在消息映射的出来函数中,入参就有鼠标CPoint类,里面就有鼠标坐标point.x point.y追问我是想自动获取鼠标坐标 而不是通过单击获取追答那就是鼠标移动时候的消息映射
void CThreadDlg::OnMouseMove(UINT nFlags, CPoint point)
如果不想一直获得的话 可以通过某种条件来达成
比如 定时器间隔固定时间获取一次追问我的代码可以获得数据并显示 只是不是我想要的而已
我现在想要相对静态控件的鼠标坐标,而不是相对客户区的
还有就是 现在鼠标移动到静态控件上没有数据产生了 只有移动到没有被IDC-show遮盖的客户区才会有数据产生追答说下我的理解和方案 看看可否参考
1.获取静态控件矩形大小和左边
2.鼠标映射函数
3.判断鼠标移是否动到静态控件矩形大小内,是的话触发事件,
4.获取此时鼠标坐标
至于想相对静态控件坐标也好办,计算鼠标坐标和静态控件坐标差距就好了
如果想的不对,继续讨论,下面我试了以下,可以的
void CThreadDlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CRect rect_Cemian1;
GetDlgItem(IDC_STATIC_TEST)->GetWindowRect(rect_Cemian1);
ScreenToClient(rect_Cemian1);
if (PtInRect(&rect_Cemian1,point))
{
AfxMessageBox("fadsfadsf");
}
CDialog::OnMouseMove(nFlags, point);
}
全部回答
- 1楼网友:你哪知我潦倒为你
- 2021-11-28 10:34
GetCurrentPos()
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯