如题,我想用GDI+实现字体的环形填充(也叫得出等距环、偏置环),但不知该如何做?

解决方案 »

  1.   

    得到字符串的轮廓路径,描出路径即可
    如:    GraphicsPath path;
        Status status = path.AddString(mSubtitleLine, 
            mSubtitleLine.GetLength(),
            m_pFontFamily,
            FontStyleRegular,
            m_nSize,
            RectF(0, 0, wndWidth, wndHeight),
            m_pStrFormat);
        if(status==Ok)
        {
            Pen pen(Color::Turquoise,2);
            graphics.DrawPath(&pen, &path);
        }
      

  2.   

    @ximidong 这个只是画出了字而已吧?填充的话要一层层地嵌套的
      

  3.   

    我现在的方法是:
    1、先得到轮廓,并放到一个Graphicspath
    2、用环形填充距离的两倍的Pen来Widen()这个Graphicspath
    3、用Outline()得到Widen()后的轮廓集
    4、因为新轮廓可能在原来轮廓的内或外,判断新轮廓的内外性来取舍现在问题是,有时候Outline()返回的Status值会是GenericError,得到的新轮廓集就不正确了