rt

解决方案 »

  1.   

    1.mapping mode
    2.CreateFont function's nHeight,               // height of fontall is logical ;
      

  2.   

    Windows在显示时以"逻辑英寸"为单位,逻辑英寸比实际的英寸要大。如果Windows程序使用实际英寸,则普通的10磅文本在显示器上就会小到几乎难以辨认,因此Windows使用放大了的"逻辑英寸"来表示文本。逻辑英寸只影响显示,而不影响打印。  
     
       使用GetDeviceCaps函数可得到当前设备的各种能力,其第一个参数nIndex指示要获取信息的类型。当nIndex为HORZSIZE和VERTSIZE时,可得到显示区域的宽度和高度;当nIndex  为HORZRES和VERTRES时,可得到每个水平和垂直方向的像素数即分辨率;当nIndex的值为LOGPIXELSX  和LOGPIXELSY时,可得到水平和垂直方向每逻辑英寸所含像素数。  
     
       在介绍了逻辑英寸的知识以后,很容易将OLEServer设置为基于逻辑英寸的映射模式。如果程序员仅仅调用SetMapMode(hdc,MM_LOENGLISH)来设置映射模式,当前的映射模式为物理英寸,而不是逻辑英寸。设置逻辑英寸必须自定义窗口和视口的范围,使xViewExt/xWinExt  =0.01逻辑英寸中水平像素的点数,当xViewExt=LOGPIXELSX,xWinExt=100时,其比值正好满足上述要求。  
     
       以下是设置映射模式的代码。  
     
    intxLogPixPerInch=GetDeviceCaps(hdc,LOGPIXELSX);  
    intyLogPixPerInch=GetDeviceCaps(hdc,LOGPIXELSY);  
    SetMapMode(MM_ANISOTROPIC);  
    SetWindowExt(100,100);  
    SetViewportExt(xLogPixPerInch,yLogPixPerInch);  
     
       上述代码中调用SetMapMode函数将映射模式设置为自定义的,该调用必须位于SetWindowExt  和SetViewportExt调用之前,否则设置将会无效。  
       上述代码实际上将映射模式设置成逻辑MM_LOENGLISH,若程序员需要设置逻辑MM_LOMETRIC、MM_HIMETRIC、MM_HIENGLISH  或MM_TWIPS,只需修改上述代码中的SetWindowExt的参数,该参数实际上是每英寸所包含的各种映射模式下的单位数。根据表1中各映射模式的参数,可得到表2中每英寸所对应的各逻辑单位的个数。  
      

  3.   

    “应该是不行的,我试了,情大家在指教”
    ???????http://community.csdn.net/Expert/topic/3713/3713476.xml?temp=5.346316E-02
    http://community.csdn.net/Expert/topic/3496/3496925.xml?temp=.65469
    http://community.csdn.net/Expert/topic/3446/3446240.xml?temp=.2289545
    http://community.csdn.net/Expert/topic/3446/3446232.xml?temp=.3165399
      

  4.   

    http://www.yesky.com/20000130/27588.shtml
      

  5.   

    I_Love_CPP(我愛C++) ,可能使我太笨了,你给的方法,我都试过了,打印出来的直线(你给我的连接后两个就是打印直线的连接),可是就连那个10cm也没有,如果方便的话,你能直接给我一段代码嘛?