只怪我自己太笨了,这么简单的东西,搞了半天才弄明白。

 

首先通过 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) 进行缩放。大家可以去实验一下。

 

这个还有朋友不理解的给我留言好了。。。

相关文章:

  • 2022-12-23
  • 2021-08-13
  • 2021-05-25
  • 2021-07-02
  • 2022-12-23
  • 2022-01-11
  • 2021-09-29
  • 2021-06-06
猜你喜欢
  • 2021-07-07
  • 2022-03-07
  • 2021-05-22
  • 2018-08-18
  • 2021-12-02
  • 2022-12-23
  • 2021-05-25
相关资源
相似解决方案