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

高手帮小弟我解释一下下面这几句什么意思 详细一些 说清楚地立即给分 多谢

2012-01-31 
高手帮我解释一下下面这几句什么意思 详细一些 说清楚地立即给分 谢谢pDC- SetMapMode(MM_ANISOTROPIC)p

高手帮我解释一下下面这几句什么意思 详细一些 说清楚地立即给分 谢谢
pDC-> SetMapMode(MM_ANISOTROPIC);
pDC-> SetWindowExt((unsigned   int)(m_EndPos.x-m_StartPos.x),100);
pDC-> SetViewportExt(rect.Width(),rect.Height());
pDC-> SetViewportOrg(0,rect.Height()/3);

[解决办法]
pDC-> SetMapMode(MM_ANISOTROPIC);
pDC-> SetWindowExt((unsigned int)(m_EndPos.x-m_StartPos.x),100);
pDC-> SetViewportExt(rect.Width(),rect.Height());
pDC-> SetViewportOrg(0,rect.Height()/3);
第一句设置显示模式,
第二句:设置窗口的坐标,它和下面一句连在一起的,前面这句用的是逻辑坐标,后面这句是物理坐标,两者结合在一起,最后一句是设坐标原点的位置,用的是物理坐标,指将0,rect.Height()/3的位置设为原点。
[解决办法]
首先,windows程序在画图时,window有一个设备描述表,比如画一个宽为20,高为10单位长度的矩形,注意这个单位长度是对于设备描述表来说的,默认情况下,一个设备描述表单位长度(即逻辑单位)对应一个像素大小,如果需要将逻辑单位与物理单位这个对应改变,就需要使用SetMapMode函数来设置新的映射模式了.比如SetMapMode(LOENGLISH)表示一个逻辑单位映射到视频窗口或者打印机等物理设备时,对于0.01英寸.而SetMapMode(ANIOSTROPIC)表示x,y轴单独缩放.这是既然要单独缩放,比如支持x,y轴的缩放比例.后面的SetWindowExt(a1,b1)和SetViewportExt(a2,b2)正是表示这个缩放比例的.这里表示,x轴缩放比例是a1逻辑长度缩放为物理长度a2,同理,b1缩放为b2.后面的SetViewportOrg(x,y)表示将物理设备的坐标原点移到(x,y)位置.比如显示器默认坐标原点是屏幕的左上角(0,0)位置,而现在移到(x,y)位置,这是平面坐标平移,这个不用详细说了.假设要话一个矩形(0,0,100,100),物理设备原点移到到(x,y)后,本来要在左上角话的矩形,此时实际话在(x,y,100+x,100+y)的位置上(这里假设显示器左上角为(0,0)坐标).实际上还有一个函数SetWindowOrg(x,y)这个是设置逻辑设备的原点.如果需要知道比较详细,请参考 < <mfc window 编程> > 一书

热点排行