字体定义:
LOGFONT lf;
memset(&lf,0,sizeof(LOGFONT));
lf.lfHeight=240;
lstrcpy(lf.lfFaceName,_T("宋体"));
然后用:
pDC->TextOut(0,240,CString(m_char),1);
我用GetGlyphOutline取得了字体轮廓上的点,但是输出的轮廓与TextOut出来的字不能重叠?轮廓点在下面一点,这是为什么?
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)GetGlyphOutline函数不行;
2)你输出轮廓的方式有问题。
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向偏移的方法
pDC-> GetGlyphOutline((UINT)str, GGO_NATIVE,&gm,cbBuffer, lpBuffer,&mat2)
上面的dy是怎么算的?TxtMtic.tmAscent ?为什么列?