MFC获取客户区鼠标位置和屏幕区鼠标位置

⌚Time: 2023-06-07 22:18:34

👨‍💻Author: Jack Ge

GetCursorPos获取屏幕区鼠标位置,参数是指向接收光标屏幕坐标的 POINT 结构的指针


BOOL GetCursorPos(

    LPPOINT lpPoint

);

MFC的窗体消息响应函数OnMouseMove,第二个CPoint参数代表当前鼠标点在客户区的位置

因此重载MFC的OnMouseMove函数就可以获取客户区鼠标位置

测试代码




void CdrawTextDlg::OnMouseMove(UINT nFlags, CPoint point)

{

    // TODO: 在此添加消息处理程序代码和/或调用默认值

    CPoint point_g;

    GetCursorPos(&point_g);

    CString str;

    str.Format(L"客户区鼠标位置:x%d y%d 屏幕区鼠标位置:x%d y%d",point.x,point.y,point_g.x,point_g.y);

    GetDlgItem(IDC_STATIC)->SetWindowText(str);

    CDialog::OnMouseMove(nFlags, point);

}