
1: CPoint pt;
2: GetCursorPos(&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);
}
使用GetCursorPos()函数
假设是用pciture控件显示。
那么可以先改变控件的ID,然后定义一个CSTATIC 类型的变量如m_ctrlPic。
先得到当前鼠标坐标:
CPoint point;
GetCursorPos( &point );
然后得到picture控件rect。
CRect rect;
::GetClientRect(m_ctrlPicGetSafeHwnd(), &rect);
然后把当前鼠标坐标转为相对于rect的坐标。
::ScreenToClient(m_ctrlPicGetSafeHwnd(), &point);
然后判断该点坐标是否在rect内,在就显示
if(rectPtInRect(point))
{
CString strPos;
strPosFormat("%d:%d", pointx, pointy);
AfxMessageBox(strPos);
}
}
对话框坐标可以使用GetWindowRect获取。
鼠标坐标一般在OnMouseMove里面通过参数获取。
这个最好有具体需求描述,因为获取方式很多,用于不同的窗口和不同的需要。
方法一:在OnMouseMove方法最前面加上局部刷新的代码:
RECT rect; //刷新区域
rectleft=800; //区域最左端
recttop=300;//区域最顶端
rectright=rectleft+100;//宽
rectbottom=recttop+30;//高
InvalidateRect(&rect);
UpdateWindow();
方法二:在文字输出(TextOut一句)前先把该区域用背景色刷一遍,用FillRect函数,即类似于dcFillRect(rect,brush);
以上就是关于如何获取鼠标在控件中位置.MFC和API都行.111111111111全部的内容,包括:如何获取鼠标在控件中位置.MFC和API都行.111111111111、mfc单击鼠标左键获得当前鼠标的坐标、急!!!MFC中如何获取鼠标相对坐标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)