应该用什么函数获取edit里字符的像素宽度呢?之前我看很多人都用GetTextExtent获取,但是这个不随字体大小改变而改变(一号大小的汉字和三号大小的汉字其像素值是一样的),要想精确获取字符的像素值应该用哪个函数呢?

解决方案 »

  1.   

    DrawText 用参数 DT_CALCRECT  
      

  2.   

    是不一样啊,我说的是用GetTextExtent这个函数获取的是一样的,实际上结果是不一样的,那我怎么获取呢?
      

  3.   

    貌似遇到过 用GDI+的那个什么MeasureString比较准确
      

  4.   

    我现在是想获得edit里的字符像素宽度,这个也可以吗?
      

  5.   

    如果使用不同font要把你用的font选择进来。
    oldFont = dc.SelectObject(&m_FontBold);//
    CSize sz=dc.GetTextExtent("AbcdEfg123lWm");
      

  6.   

    GetTextExtentPoint32W 试试这个函数
      

  7.   

    现在我就是这么用的啊,只不过gettextextent里的参数是edit里的内容,而不是现写的一段字符串。这样获取的值不对啊,比如我在edit里输入两个汉字,不管你加粗还是字体变大,数值没变啊,是我写的不对还是函数问题?
      

  8.   

    谢谢各位的回答,经过我的测试,gettextextent和GetTextExtentPoint32都是正确的