在文档视图结构中,字符显示时宽度是不一样的,如 m 几乎是 f 的两倍,怎么得到宽度?如果系统是大字体,处理方式是一样的吗?谢了先

解决方案 »

  1.   

    TEXTMERIC tm;
    GetTextMetrics(&tm);
    tm->tmAveCharWidth;(average width) 
    tm->tmMaxCharWidth;(maximum width)
      

  2.   

    GetTextMetrics
    看看,就是它了,msdn上有详细的说明
      

  3.   

    SIZE size;
    GetTextExtentPoint32(pDC->GetSafeHdc(), "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrst"
                "uvwxyz",52,&size);
    WORD avgWidth = (size.cx/26+1)/2; // 求平均宽度
      

  4.   

    CSize sz;
    CDC dc;
    dc.CreateCompatibleDC(NULL);
    CFont* pOldFont = dc.SelectObject(pFont);
    sz = dc.GetOutputTextExtent("I");
    宽度:sz.cx