自己做了个测试程序
pDc->SetMapMode(MM_LOENGLISH) ;
CPoint Pt1(10,10);
CPoint Pt2(10,10);
pDc->LPtoDP(&Pt1);
pDc->DPtoLP(&Pt2);
结果是Pt1={8,-7};Pt2={13,-13} 为什么?
到底SetMapMode的那几个映射方式怎么理解,windows程序设计(中文chm)也说的不是很清楚。
分不够可以单独给,来者有分。
pDc->SetMapMode(MM_LOENGLISH) ;
CPoint Pt1(10,10);
CPoint Pt2(10,10);
pDc->LPtoDP(&Pt1);
pDc->DPtoLP(&Pt2);
结果是Pt1={8,-7};Pt2={13,-13} 为什么?
到底SetMapMode的那几个映射方式怎么理解,windows程序设计(中文chm)也说的不是很清楚。
分不够可以单独给,来者有分。
解决方案 »
- 新手求教
- 窗口上的"最大化"最小化"关闭"这3个按钮,有资源ID吗?
- 在MFC中通过MCIWndCreate实现播放视频
- 我想HOOK模块的IAT的函数,请问该怎么做?(不是EXE的,是DLL的)
- 急急急!!请用过GetChunk的高手赐教
- 再问一个没有人问过的问题:Installshield 哪个对话框是可以密码输入的?
- 串口可否直接发送韦根26格式的信号到标准门禁控制器呢?
- win32如何通过多进程实现Concurrent echo-server?
- 回调函数(callback)总是看不懂,哪位仙人给指点迷津!!
- 我给回答者分怎么总是给不上去?
- 在sdk creating thread 页中的文档,看不懂
- 奇怪的现象,关于custom build。请大家帮忙看看
LPtoDP 或者 DPtoLP 后为什么Y为负我能理解,是因为坐标方式不一样但我不是很理解的是,根据公式
xViewport=(xWindow-xWinOrg)*(xViewExt/xWinExt)+xViewOrg
带入值的话是
xViewport=(10-0)*(0.01)+0;
xViewport=(10-0)*(96/100)+0;
上面两个公司我一直怀疑是我错了,因为窗口和视端口的原点我都没改变因此应该都是零的。
但我在那么算都算不出来13,或者8出来,请指教。
http://www.vckbase.com/document/viewdoc/?id=927
这个应该设备的屏幕分辨率也有关系,我先前只是做过逻辑单位下的坐标点和实际坐标下的坐标点之间的转化.
MM_LOENGLISH 0.01 in. 0.01 0.254
MM_LOMETRIC 0.1 mm. 0.00394 0.1
MM_HIENGLISH 0.001 in. 0.001 0.0254
MM_TWIPS 1/1400 in. 0.000694 0.0176
MM_HIMETRIC 0.01 mm. 0.000394 0.01
映像方式 视埠范围(x,y) 窗口范围(x,y)
MM_LOMETRIC (96, 96) (254, -254)
MM_HIMETRIC (96, 96) (2540, -2540)
MM_LOENGLISH (96, 96) (100, -100)
MM_HIENGLISH (96, 96) (1000, -1000)
MM_TWIPS (96, 96) (1440, -1440)
映像方式 视埠范围(x,y) 窗口范围(x,y)
MM_LOMETRIC (1024, -768) (3,200, 2,400)
MM_HIMETRIC (1024, -768) (32,000, 24,000)
MM_LOENGLISH (1024, -768) (1,260, 945)
MM_HIENGLISH (1024, -768) (12,598, 9,449)
MM_TWIPS (1024, -768) (18,142, 13,606)