工控编程吧

标题: 上位机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)