《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页的内容,书要慢慢理解的,不要心急!