工控编程吧
标题: 上位机MFC如何获得光标的坐标 [打印本页]
作者: qq263946146 时间: 2019-7-19 12:29
标题: 上位机MFC如何获得光标的坐标
窗口在鼠标划过时,可以通过WM_MOUSEMOVE消息的处理函数,保存鼠标光标的坐标。
进而 在后续使用。
例如,定义一全局CPoint m_Point变量后,就可以在下面函数里保存。
void CGkbc8View::OnMouseMove(UINT nFlags, CPoint point)
{
//保存光标坐标
m_Point = point;
//刷新客户区
Invalidate();
CView::OnMouseMove(nFlags, point);
}
然后在其他地方使用
如绘制十字叉
void CGkbc8View::OnDraw(CDC* pDC)
{
CGkbc8Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
//获得客户区坐标
CRect rect;
GetClientRect(rect);
//绘制十字光标
pDC->MoveTo(0, m_Point.y);
pDC->LineTo(rect.Width(), m_Point.y);
pDC->MoveTo(m_Point.x, 0);
pDC->LineTo(m_Point.x, rect.Height());
//输出光标坐标
CString strText =_T("");
strText.Format(_T("%d, %d"), m_Point.x, m_Point.y);
pDC->SetBkMode(TRANSPARENT);
pDC->SetTextAlign(TA_RIGHT | TA_BOTTOM);
pDC->TextOut(m_Point.x, m_Point.y, strText);
}
(, 下载次数: 0)