CFont::CreateFont()函数中参数nWidth所指定的字体宽度在显示时并不是很精确。例如,取窗口客户区宽度为1000逻辑单位,然后将字体宽度设为100逻辑单位,用TextOut输出10个字符后,要么一部分字符被截断,要么后面留下了一段空白。
这个问题相当的麻烦,如何解决?请高人指点。谢谢。

解决方案 »

  1.   

    是不是映射模式问题?设为0试一下
     If this value is zero, the font mapper chooses a closest match value.
      

  2.   

    两个原因:一是字体宽度本身不精确,TrueType字体好一些,点阵字体取的是近似值;二是没有使用等宽字体。
      

  3.   

    字体的宽度不是固定的。一般情况下要输出字体都是通过GetTextExtentPoint这个接口来确定输出字符串战胜的宽度。