MFC 以PictureControl左上角为原点的鼠标移动事件

IDC_PIC_TEST是PictureControl控件的ID

    CRect mouseROI;
    GetDlgItem(IDC_PIC_TEST)->GetWindowRect(mouseROI); //桌面左上角是0,0
    ScreenToClient(&mouseROI); //转换后,控件以客户区左上角为0,0
    //鼠标以客户区左上角为原点。当鼠标进入PictureControl控件区域
    if (point.x>=mouseROI.left && point.x<=mouseROI.right && point.y>=mouseROI.top && point.y<=mouseROI.bottom)
    {
        int x=point.x-mouseROI.left; //相减后,就得到控件左上角为原点的坐标值。也就是把计算后的x,y当做鼠标的坐标位置。
        int y=point.y-mouseROI.top;
        CString str;
        str.Format(_T("[%d,%d]   "),x,y);
        CDC *pDC=GetDC();
        pDC->TextOut(0,0,str);
        ReleaseDC (pDC);
    }

    CDialogEx::OnMouseMove(nFlags, point);

 

posted @ 2021-01-14 22:25  夕西行  阅读(397)  评论(0编辑  收藏  举报