字体定义:
LOGFONT lf;
memset(&lf,0,sizeof(LOGFONT));
lf.lfHeight=240;
lstrcpy(lf.lfFaceName,_T("宋体"));
然后用:
pDC->TextOut(0,240,CString(m_char),1);
我用GetGlyphOutline取得了字体轮廓上的点,但是输出的轮廓与TextOut出来的字不能重叠?轮廓点在下面一点,这是为什么?

解决方案 »

  1.   

    原因分析:
    1)GetGlyphOutline函数不行;
    2)你输出轮廓的方式有问题。
      

  2.   

    在用 GetGlyphOutline是用的是哪种格式(uFormat )?
      

  3.   

    自己实验了下 代码:
    http://blog.csdn.net/zzz3265/archive/2008/06/27/2591671.aspx
    TEXTMETRIC      TxtMtic;
    pDC->GetTextMetrics(&TxtMtic);dx = GpMtic.gmptGlyphOrigin.x;
    dy = TxtMtic.tmAscent - GpMtic.gmptGlyphOrigin.y;轮廓点在下面一点, 应该是y向偏移不对, 上面的dy就是我用来计算y向偏移的方法
      

  4.   

    在用 GetGlyphOutline是用的是哪种格式(uFormat )?
      

  5.   


    pDC-> GetGlyphOutline((UINT)str, GGO_NATIVE,&gm,cbBuffer, lpBuffer,&mat2)
    上面的dy是怎么算的?TxtMtic.tmAscent ?为什么列?