如图所示,上面是Verdana字体,lfHeight是60
下面是times new roman字体,大小也是60
但是从显示效果看,中文的实际大小,两个字体是一样的,而数字和英文字母,宽度完全不同
类似的还有其他字体,实际显示效果也是完全不一样。
请问我如何去得到任意字符串的宽度?前提是已经知道字体类型和字体大小,也能独到对应的ttf文件。

解决方案 »

  1.   

    没用过TrueType字体,如果是普通字体可以用dc.GetTextExtent
      

  2.   

    把需要的字体 选入 dc,然后:
    dc.GetTextExtent
      

  3.   

    你好,GetTextExtent得到的是字符串里面有多少个字符,我想要的是字符串有多长,占几个像素
      

  4.   

    Call this member function to compute the width and height of a line of text using the current font to determine the dimensions.  
    CSize GetTextExtent(
       LPCTSTR lpszString,
       int nCount 
    ) const;
    CSize GetTextExtent(
       const CString& str 
    ) const;
     这是获取宽和高,哪里是取多少个字符了,我用过的,但是Font不是TRUETYPE的.
      

  5.   

    “GetTextExtent得到的是字符串里面有多少个字符”?
    不是的 ;是 pixel
      

  6.   

    CSize sz=dc.GetTextExtent(str);