2012-04-03 21 views
1

我有围绕Circle绘制文字的问题。使用C++ MFC函数绘制文字周围的文字

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

卜发现伟大的样品我需要实现这在VC++ 6.0和C#示例工作不适合我这个原因。

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

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

+0

什么不适合你?你能显示一些代码以及错误消息吗? – Gray 2012-04-04 12:42:48

+0

当一个问题已经有一个特定的,有用的答案时,你如何将问题作为“不是真正的问题”来解决?从定义上看,问题似乎是可以回答的。 – 2012-04-04 16:21:50

回答

0

CDC是一个围绕GDI的薄包装。 GDI没有为你想要做的事提供很多支持,所以这将是很多工作。这里有几个办法:

  1. 绘制文本通常(在一条直线上)到离屏DIB节,然后执行按像素转变为与文本另一关闭屏幕DIB节一个圆圈。然后,您可以将转换后的DIB部分blit到输出设备。

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

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

+0

是的,你说得对。我尝试了方法2,旋转后我的文字“奇怪”。有些字母较小,有些字母形状奇特。 – DjPasco 2012-04-04 07:25:10