好像TextOut和DrawText都不行
请注意要求,1、竖排,像中国的古书那种样子;2、多行,最好支持动态换行。
尽量简单,多谢了。
15 个解决方案
#1
一个字一个字的draw
#2
那多行时,是要求从左至右,还是从右至左啊
#3
这个倒没有要求,都可以。
#4
http://zhidao.baidu.com/question/40869964.html
#5
竖排就是字体前加上一个 @
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 输出就可以了
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 输出就可以了
#6
这个只做了竖排,没有满足我的第2个要求。
#7
http://topic.csdn.net/t/20031117/16/2465525.html
#8
这个我知道。现在的问题在于,无论我如何预留显示区,都只能显示一列,其他的文字都不见了。
#9
这个方法我也想过,但是文中的例子太特殊了,刚好是一句一句的诗。比如我要输出金庸小说里的任何200个文字,怎么办?
#10
单个文字是横的还是竖的?如果是竖的就只能一个一个的ExtTextOut,如果是横的可以SetWorldTransform
然后DrawText
然后DrawText
#11
一个字一个字的画,不过要分别开UNICODE ,非 UNICODE 字符,
取一个字,画一下,然后,再重计算下一个文字的位置,然后再画,就行了.
一般的,都是连在一起画的.
取一个字,画一下,然后,再重计算下一个文字的位置,然后再画,就行了.
一般的,都是连在一起画的.
#12
好东西,标记一下
#13
既然竖排绘制已经有方法了,那么只要把这些文字自己切分成一竖排一竖排的,然后再TextOut到DC上那不就行了。
#14
在Win2000和以后的平台上ExtTextOut API支持新的竖向排版功能,方法是使用ETO_PDY标志同时指定每个字符的位置。
#15
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法
#1
一个字一个字的draw
#2
那多行时,是要求从左至右,还是从右至左啊
#3
这个倒没有要求,都可以。
#4
http://zhidao.baidu.com/question/40869964.html
#5
竖排就是字体前加上一个 @
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 输出就可以了
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 输出就可以了
#6
这个只做了竖排,没有满足我的第2个要求。
#7
http://topic.csdn.net/t/20031117/16/2465525.html
#8
这个我知道。现在的问题在于,无论我如何预留显示区,都只能显示一列,其他的文字都不见了。
#9
这个方法我也想过,但是文中的例子太特殊了,刚好是一句一句的诗。比如我要输出金庸小说里的任何200个文字,怎么办?
#10
单个文字是横的还是竖的?如果是竖的就只能一个一个的ExtTextOut,如果是横的可以SetWorldTransform
然后DrawText
然后DrawText
#11
一个字一个字的画,不过要分别开UNICODE ,非 UNICODE 字符,
取一个字,画一下,然后,再重计算下一个文字的位置,然后再画,就行了.
一般的,都是连在一起画的.
取一个字,画一下,然后,再重计算下一个文字的位置,然后再画,就行了.
一般的,都是连在一起画的.
#12
好东西,标记一下
#13
既然竖排绘制已经有方法了,那么只要把这些文字自己切分成一竖排一竖排的,然后再TextOut到DC上那不就行了。
#14
在Win2000和以后的平台上ExtTextOut API支持新的竖向排版功能,方法是使用ETO_PDY标志同时指定每个字符的位置。
#15
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法