我在CMineView::OnDraw()里面设置了pDC->SetViewportOrg(1000,1000);可是鼠标移动到左上角的时候坐标还是(0,0),是为什么呢???
鼠标移动的代码:void CMineView::OnMouseMove(UINT nFlags, CPoint point) //显示坐标
{
CString str;
str.Format("当前坐标 X: %d,Y: %d\n",point.x,point.y);
AfxGetMainWnd()->SetWindowText(str);
CView::OnMouseMove(nFlags, point);
}
鼠标移动的代码:void CMineView::OnMouseMove(UINT nFlags, CPoint point) //显示坐标
{
CString str;
str.Format("当前坐标 X: %d,Y: %d\n",point.x,point.y);
AfxGetMainWnd()->SetWindowText(str);
CView::OnMouseMove(nFlags, point);
}
裡面有說到
一旦设置了设备环境的映射模式,大多数CDC函数就可以使用逻辑坐标,但是一些函数不能,如:从Windows的鼠标消息获得的鼠标坐标。这就涉及到了组跑表转换。这就用到了CDC的LptoDP和DptoLP函数,就想下面这样:
如果改了映射模式想显示逻辑坐标,还得DPToLP