如何显示竖排的多行文字?

zhaolinger2 2010-03-30 12:04:23
要在一个图片的右侧配上说明文字,要求是竖排多行,最好能够根据输入文字的不同进行动态换行。
好像TextOut和DrawText都不行
请注意要求,1、竖排,像中国的古书那种样子;2、多行,最好支持动态换行。
尽量简单,多谢了。
...全文
398 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2010-04-11
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法
baby393 2010-04-04
  • 打赏
  • 举报
回复
在Win2000和以后的平台上ExtTextOut API支持新的竖向排版功能,方法是使用ETO_PDY标志同时指定每个字符的位置。
Jimmy_Xia 2010-04-02
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 zhaolinger2 的回复:]

引用 7 楼 marrco2005 的回复:
http://topic.csdn.net/t/20031117/16/2465525.html


这个方法我也想过,但是文中的例子太特殊了,刚好是一句一句的诗。比如我要输出金庸小说里的任何200个文字,怎么办?
[/Quote]
既然竖排绘制已经有方法了,那么只要把这些文字自己切分成一竖排一竖排的,然后再TextOut到DC上那不就行了。
zhou1xp 2010-04-02
  • 打赏
  • 举报
回复
好东西,标记一下
f275085980 2010-04-02
  • 打赏
  • 举报
回复
一个字一个字的画,不过要分别开UNICODE ,非 UNICODE 字符,
取一个字,画一下,然后,再重计算下一个文字的位置,然后再画,就行了.
一般的,都是连在一起画的.
zhaolinger2 2010-03-30
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 marrco2005 的回复:]
http://topic.csdn.net/t/20031117/16/2465525.html
[/Quote]

这个方法我也想过,但是文中的例子太特殊了,刚好是一句一句的诗。比如我要输出金庸小说里的任何200个文字,怎么办?
zhaolinger2 2010-03-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 marrco2005 的回复:]
竖排就是字体前加上一个 @

CFont myFont; //创建字体对象

//创建逻辑字体
myFont.CreateFont(
              56, //字体高度(旋转后的字体宽度)=56
              20, //字体宽度(旋转后的字体高度)=20
              2700, //字体显示角度=270°
              ……
[/Quote]

这个我知道。现在的问题在于,无论我如何预留显示区,都只能显示一列,其他的文字都不见了。
marrco2005 2010-03-30
  • 打赏
  • 举报
回复
http://topic.csdn.net/t/20031117/16/2465525.html
zhaolinger2 2010-03-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 happyparrot 的回复:]
http://zhidao.baidu.com/question/40869964.html
[/Quote]

这个只做了竖排,没有满足我的第2个要求。
marrco2005 2010-03-30
  • 打赏
  • 举报
回复
竖排就是字体前加上一个 @

CFont myFont; //创建字体对象

//创建逻辑字体
myFont.CreateFont(
              56, //字体高度(旋转后的字体宽度)=56
              20, //字体宽度(旋转后的字体高度)=20
              2700, //字体显示角度=270°
              0, //nOrientation=0
              10, //字体磅数=10
              FALSE, //非斜体
              FALSE, //无下划线
              FALSE, //无删除线
              DEFAULT_CHARSET, //使用缺省字符集
              OUT_DEFAULT_PRECIS, //缺省输出精度
              CLIP_DEFAULT_PRECIS,//缺省裁减精度
              DEFAULT_QUALITY, //nQuality=缺省值
              DEFAULT_PITCH, //nPitchAndFamily=缺省值
              "@system"); //字体名=@system
CFont *pOldFont=dc.SelectObject(&myFont);//选入设备描述表
CRect rtClient;

然后用 DrawText 输出就可以了
快乐鹦鹉 2010-03-30
  • 打赏
  • 举报
回复
http://zhidao.baidu.com/question/40869964.html
zhaolinger2 2010-03-30
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 happyparrot 的回复:]
那多行时,是要求从左至右,还是从右至左啊
[/Quote]

这个倒没有要求,都可以。
快乐鹦鹉 2010-03-30
  • 打赏
  • 举报
回复
那多行时,是要求从左至右,还是从右至左啊
Eleven 2010-03-30
  • 打赏
  • 举报
回复
一个字一个字的draw
baby393 2010-03-30
  • 打赏
  • 举报
回复
单个文字是横的还是竖的?如果是竖的就只能一个一个的ExtTextOut,如果是横的可以SetWorldTransform
然后DrawText
精确打印软件,非常好用,虽然是老软件,但是很好用。 1.改正了客户对以前版本返回来的错误和建议,并全面支付Office 2000系列,如果您的电脑使用的是Office 97或更早的版本,您应该升级到2000系列。 2.增强了文字对象的功能,全面支持Office 2000系列,并可直接输出Excel表格的内容了。 3.增加了直接粘贴在其它字处理软件里面复制的文本的功能,系统会自动增加文字对象并设定为粘贴板上的文本。 4.增加了顺时针90度排版功能,使得顺时针90度排版及竖排文字功能得以实现。 5.增加了转到指定页功能,使您操作多页文档更加方便。 6.增加了特殊粘贴功能,使您一次性粘大量有规律对象更加方便。 7.增加上下载模板和返回模板功能,使得在不久的将建立起一个功能齐全的模板库成为可能。 8.增加了对象的是否打印属性,这样您就可以创建一些只用用显示而不打印的参考对象。 9.增加了文字对象的文字对象名称属性,这样您就可以使多个对象保持相同的打印内容,在打印金额大小写之类的内容时更加方便。 10.增加了文字对象的调整文字间隔属性,现在您可以任意控制打印字间距了。 11.增加了文字对象从数据库或Excel表格中输出内容时设定打印条件的属性,这样您就可以对打印的结果进行过滤了。 12.增加了文字对象将结束打印记录设定为“0”后打印数据库或Excel表格中的全部内容的功能,这样您就不用每次增加数据时重新设定结束打印记录了。 13.增加了文字对象的每页打印行数属性,这样您在套打多行表格时将会更加方便。 14.增加了文字对象的结果转换公式属性,这样就可以自动进行金额大小写和数字大小写了。 15.增加了文字对象的宽高比属性,这样您在打印文字时就可以任意调整文字的宽高比例使它们看上去变长或变扁。 16.校正打印机向导更加好用了,去掉了用处不大但容易让从误解的屏幕校正部分。 17.改进了打印部分,原来每次更改打印机打印纸张设定后对位不准确的现象已经消除。 18.去掉了图形菜单,它虽然好看,但久了还是有点烦,力求简单就是美。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧