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);