我在CScrollView中改变坐标的方向,把它x,y的正方向设成右上的,在pDC->SetMapMode(nMode)中,如果nMode为MM_LOMETRIC,就可以把x,y的正方向改成右上的,但是这种模式下的一个逻辑单位为0.1mm,而我想要的是MM_TEXT下的一个逻辑单位是一个象素的效果,哪位高手可以把坐标系中的x,y正方向改成右上的,且一个逻辑单位为一个象素的???请指点!!!!

解决方案 »

  1.   

    这个参数呢?
    MM_TWIPS   Each logical unit is converted to 1/20 of a point. (Because a point is 1/72 inch, a twip is 1/1440 inch.) Positive x is to the right; positive y is up.
      

  2.   

    pDC->SetMapMode(MM_ISOTROPIC);
    pDC->SetWindowExt(1,1);
    pDC->SetViewportExt(1,-1);
      

  3.   

    是呀,怎么个能是像素呢?映射方式 逻辑单位 
    MM_LOENGLISH 0.01英寸 
    MM_HIENGLISH 0.001英寸 
    MM_LOMETRIC 0.1毫米 
    MM_HIMETRIC 0.01毫米 
    MM_TWIPS 1/1440英寸 这些都不符合,接近的只有MM_LOENGLISH 0.01英寸 
      

  4.   

    webber84 解释一下,让我学习学习,
      

  5.   

    MM_ISOTROPIC、MM_ANISOTROPIC。用这种映射模式可以做到当窗口大小发生变化时图形的大小也会相应的发生改变,同样当翻转某个轴的伸展方向时图象也会以另外一个轴为轴心进行翻转,并且还可以定义任意的比例因子
    -----------------------------------------------------------------------------
    通过int CDC::SetMapMode( int nMapMode )可以指定映射方式,可用的有以下几种: 
    MM_HIENGLISH 每点对应0.001英寸   Each logical unit is converted to 0.001 inch. Positive x is to the right; positive y is up.MM_HIMETRIC 每点对应0.001毫米   Each logical unit is converted to 0.01 millimeter. Positive x is to the right; positive y is up.MM_LOENGLISH 每点对应0.01英寸   Each logical unit is converted to 0.01 inch. Positive x is to the right; positive y is up.MM_LOMETRIC 每点对应0.001毫米   Each logical unit is converted to 0.1 millimeter. Positive x is to the right; positive y is up.MM_TEXT 象素对应   Each logical unit is converted to 1 device pixel. Positive x is to the right; positive y is down.
    以上几种映射默认的原点在屏幕左上方。除MM_TEXT外都为X坐标向右增加,Y坐标向上增加,和自然坐标是一致的。所以在作图是要注意什么时候应该使用负坐标。而且以上的映射都是X-Y等比例的,即相同的长度在X,Y轴上显示的长度都是相同的。
    ...http://www.powerba.com/develop/vc/article/20010621002.htm
      

  6.   

    MM_ISOTROPIC映射方式可以让你自由地调整横纵坐标的比例。
    pDC->SetWindowExt(1,1)和pDC->SetViewportExt(1,-1)就表示一个逻辑坐对应一个设备坐标,而设备坐标总是以像素为单位的,这样就实现了MM_TEXT的功能。SetViewportExt中把纵坐标方向的ext设成了-1,这样就实现了以向上为正方向。
      

  7.   

    http://www2.yesky.com/34669925/173467_1.shtml就是要分。呵呵
      

  8.   

    昨晚上看过了,还是JennyVenus() 告诉我的,这里的楼主呢?哈哈