有关逻辑坐标系统和备坐标系统的问题
我执行以下语句:
pDC->SetMapMode(MM_TEXT);
pDC->SetViewportOrg(100,100);
RECT rect;
rect.left=rect.top=0;
rect.bottom=rect.right=200;
pDC->DPtoLP(&rect);
CString str;
str.Format("left=%d,right=%d,top=%d,bottom=%d",rect.left,rect.right,rect.top,rect.bottom);
MessageBox(str);
结果输出为left=-100,right=100,bottom=100,top=-100.
但我从上面的代码可以看出我设定的设备坐标系统的原点为(100,100),也就是说设备坐标系统的原点在逻辑坐标原点的右下角(100,100)点处。
这时当我执行pDC->DPtoLP(&rect);时函数应该将rect由设备坐标系统的坐标转为逻辑坐标系统的坐标,这样照我的推断结果应该为left=100,right=300,bottom=300,top=100.
为什么我的推断与实际结果不符呢?请指教。