首先,利用MFC建立一个单文档的程序!
为view类添加一个私有成员,m_MousePos,类型是CPoint,初始化为0。
添加WM_MOUSEMOVE函数,重写如下:
void CMouseMoveView::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
m_MousePos = point; //将鼠标当前的位置赋给成员变量
Invalidate(true); //刷新客户区窗口
CView::OnMouseMove(nFlags, point);
}
在OnDraw函数中输出鼠标的位置:
void CMouseMoveView::OnDraw(CDC* pDC)
{
CMouseMoveDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
CString str;
str.Format("X 的位置: %d", m_MousePos.x);
pDC->TextOut(m_MousePos.x+20, m_MousePos.y, str);
str.Format("Y 的位置: %d", m_MousePos.y);
pDC->TextOut(m_MousePos.x+20, m_MousePos.y+20, str);
}
本文介绍如何在MFC单文档程序中实现鼠标位置的实时显示。通过为视图类添加成员变量来记录鼠标位置,并重写WM_MOUSEMOVE消息处理函数更新此变量。最后,在绘图函数中输出鼠标坐标。
3601

被折叠的 条评论
为什么被折叠?



