首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

《Windows程序设计》中数字时钟关于坐标的有关问题

2012-04-27 
《Windows程序设计》中数字时钟关于坐标的问题hdcBeginPaint(hwnd,&ps)//逻辑单位转换成具有均等比例轴的

《Windows程序设计》中数字时钟关于坐标的问题
hdc=BeginPaint(hwnd,&ps);  
  //逻辑单位转换成具有均等比例轴的任意单位,即沿X轴的一个单位等于沿Y轴的一个单位。 
  //用SetWindowExt和SetViewportExt函数可以指定该轴的单位和方向
  SetMapMode(hdc,MM_ISOTROPIC);  
  //设置窗口区域为276*72  
  SetWindowExtEx(hdc,276,72,NULL);  
  //用指定的值来设置指定设备环境坐标的X轴、Y轴范围  
  SetViewportExtEx(hdc,cxClient,cyClient,NULL);  
  //设置设备环境的窗口原点  
  SetWindowOrgEx(hdc,138,36,NULL);  
  //映射逻辑点(0,0)到设备点 (cxClient/2-65, cyClient)  
  SetViewportOrgEx(hdc,cxClient/2-65,cyClient/2,NULL);  

这几行代码把我搞晕了。
1、MM_ISOTROPIC方向是怎么样,哪是正,哪是负,是在什么地方设置的
2、设置设备环境窗口原点作用是什么?
3、为什么映射逻辑点到设备点,作用是什么?
感觉好麻烦啊,不太理解,具体点请看
http://blog.csdn.net/l0g1n/article/details/7506096


[解决办法]
SetViewportExtEx(hdc,cxClient,cyClient,NULL); 中 cxClient与 cyClient都为正数则与默认方向相同屏幕左上角为原点,向下为Y轴正向,向右为X轴正向,若cxClient为-cxClient,则向左为X轴正向。
建议你详细看看《windows 程序设计》 118页到122页的内容,书要慢慢理解的,不要心急!

热点排行