首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

DrawText奇葩有关问题

2013-12-09 
DrawText奇葩问题DrawText需要传递一个矩形区域作为绘制区域参数,但是如果文本超出了区域就会被裁剪掉,我

DrawText奇葩问题
DrawText需要传递一个矩形区域作为绘制区域参数,但是如果文本超出了区域就会被裁剪掉,我现在想知道那些文字显示不出来,这个怎么获得呢?显示不出来的文字我打算显示到下一页去
[解决办法]
你是指指定的区域内,显示不下你所有的文字?
你可以从DC获得当前字体的高和宽.然后判断一下你指定的区域能显示多少字
[解决办法]
这个很难算吗?以前做排版软件,是需要多个文本窗口进行续排的,就像我们看报纸的时候有从哪个版面转到哪个版面一样.逐行判断就行了.回车换行自然就是加一行了.根据字的高度,你就知道你的矩形区域能放几行文字了.排版比这复杂多了,还有行宽等等很多判断内容的.
[解决办法]
DrawText返回值是正文的高度。
DT_CALCRECT:这个参数比较重要,可以使DrawText函数计算出输出文本的尺寸。如果输出文本有多行,DrawText函数使用lpRect定义的矩形的宽度,并扩展矩形的底部以容纳输出文本的最后一行。如果输出文本只有一行,则DrawText函数改变矩形的右边界,以容纳下正文行的最后一个字符。
出现上述任何一种情况,DrawText函数将返回格式化文本的高度,而不是绘制文本。
右边界会被DrawText改变,在根据你整个文字的宽度来计算,就能知道有哪些文字没有显示出来。
[解决办法]
这个貌似还真没什么好的办法,GetTextExtent获取大小自己算吧  也没有多麻烦的...
[解决办法]
DrawText哪能干这些事情呢。如果有的话,自然应该有相应的参数或者返回值啊
[解决办法]
判断字体宽带,计算CRect
[解决办法]
自己计算字体宽度以及字符串长度,然后来换行等。或者直接用控件显示
[解决办法]
DrawText不自动换行吧?除了有\r\n能换行。
TextOut我记得是不换行的,超出了范围就没了。自己计算位置太费劲了,好像有时不是完整字符还不准。
我通常是两个区域边缘是接着的,比方两个显示器。向两个显示区域同时发送两份,去掉裁减掉的部分看起来是接在一起的。

[解决办法]
不处理显示半个字的那就是个排版。
[解决办法]
有这个能力,但未必给你提供这个接口啊。

热点排行