使用C ++ MFC函数在圆周上绘制文本

时间:2012-04-03 12:55:55

标签: c++ mfc

我对Circle周围的文字绘图有问题。

我在C#http://www.codeproject.com/Articles/30090/Text-On-A-Path-in-WPF

中找到了很好的样本

我需要在VC 6.0中实现这一点,因此C#示例对我不起作用。

也许存在一些实现这个的基本算法?

所有图纸必须在CDC中绘制。

1 个答案:

答案 0 :(得分:0)

CDC是围绕GDI的薄包装。 GDI并没有为你想做的事情提供太多的支持,所以这将是很多工作。以下是几种方法:

  1. 将文本正常(以直线)绘制到屏幕外DIB部分,然后按像素转换以制作另一个带有圆圈文本的屏幕外DIB部分。然后,您可以将已转换的DIB部分blit到输出设备。

  2. 对于每个字符,创建一个逻辑字体,并将擒纵和方向设置为当前位置的相应角度,然后使用该字体绘制字符。对每个角色重复一次。这里的问题是,即使使用TrueType或OpenType字体,旋转也不总是非常好,具体取决于字体的质量,提示等。

  3. 使用TrueType或OpenType字体并使用GDI为您提供定义实际字符形状的向量(线段和贝塞尔曲线)。将它们组装成直线,然后将笛卡尔坐标应用于极坐标变换。使用其中一个路径函数绘制结果。