我是MFC的新手,我试图在Windows上创建一个快速应用程序以模拟硬件/计算机外围设备,以后将与之集成,但如果可用,硬件将发送屏幕x和y坐标。

我创建了一个MFC应用程序,捕获鼠标事件和鼠标移动事件。

我能够捕获鼠标移动事件,但是日志不显示X和Y的数值,而是输出.cpp文件路径作为X的值,而对于Y则不输出任何东西,奇怪吗?

请参见下面的代码段:

  void CRingExampleView::OnMouseMove(UINT nFlags, CPoint point)
{
    // TODO: Add your message handler code here and/or call default
    /*
    I also tried declaring a new point POINT p and passing that to GetCursorPos(&p), but still now numerical output
    */
    if (GetCursorPos(&point))
    {

        TRACE("X:", point.x);
        TRACE("Y:", point.y);

    }

    CScrollView::OnMouseMove(nFlags, point);
}

        CScrollView::OnMouseMove(nFlags, point);
    }//end function

查看日志和应用程序的屏幕截图:

c++ - VC++ MFC应用程序无法记录鼠标数字坐标-LMLPHP

如何输出x和y的数值?

谢谢

最佳答案

问题是您的TRACE语句需要一个格式字符串。

例:

 TRACE(_T("X: %d"), point.x);

你可以在这里阅读更多:

MFC Debugging Techniques

关于c++ - VC++ MFC应用程序无法记录鼠标数字坐标,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49018019/

10-13 09:48