只怪我自己太笨了,这么简单的东西,搞了半天才弄明白。
首先通过 SetMapMode函数修改坐标映射模式,我这里使用了MM_ANISOTROPIC模式。
SetMapMode(hDC,MM_ANISOTROPIC);
然后调用SetWindowExtEx函数设置逻辑坐标。我们把基数调简单一点为1,1
SetWindowExtEx(hDC,1,1,NULL);
再调用SetViewportExtEx函数设置设备坐标。
SetViewportExtEx(hDC,2,2,NULL);
然后调用MoveTo和LineTo画线。
MoveTo(0,0);LineTo(50,50)。
由于我们使用坐标映射修改了坐标比例。那么参数里的实际坐标长度应该是Move(0 * (2/1),0 * (2/1)) LineTo(50 * (2/1), 50 * (2/1));
这样大家能看明白吗?
设置DC坐标映射,你作画时的实际坐标,就会根据坐标映射比例(Viewport ÷ Window) 进行缩放。大家可以去实验一下。
这个还有朋友不理解的给我留言好了。。。