如何获取文本的宽度和高度
1 使用某种字体在窗口上显示时,如何得知
文字的宽度和高度呢?
2 还有,在窗口上打印文字,能制定高度和宽度吗?
问题点数:20、回复次数:9Top
1 楼vcmute(BCare4 H1Rest Good9!)回复于 2006-03-04 15:39:50 得分 8
1. GetTextExtent
2. DrawText 等中设定rectTop
2 楼kikikind(可乐)回复于 2006-03-04 15:44:55 得分 0
将文件保存在CString变量中这后 str.GetLength()Top
3 楼TaiJi1985(太极_实践是检验真理的唯一标准,请没有试过的人保持沉默)回复于 2006-03-04 18:28:29 得分 0
可乐同志,谢谢您的回复。
不过,getlength();的到的是字符串的长度阿。Top
4 楼Mackz(在相互)回复于 2006-03-05 02:09:15 得分 8
GetTextExtent
CFontTop
5 楼TaiJi1985(太极_实践是检验真理的唯一标准,请没有试过的人保持沉默)回复于 2006-03-17 15:44:07 得分 0
我使用了
GetTextExtentPoint32
结果令我哭笑不得,字符串长度超过一定值的时候,返回的宽度就固定了在36了。
清高手指点。Top
6 楼goodboyws(深夜不眠者(VCMVP))回复于 2006-03-17 15:58:03 得分 4
不会吧,你怎么用的?!
一般单行用GetTextExtentPoint32
多行用
DrawText(..., DT_CALCRECT);Top
7 楼Seu_why(Newbie)回复于 2006-03-17 16:03:42 得分 0
GetTextMetrics
The GetTextMetrics function fills the specified buffer with the metrics for the currently selected font.
BOOL GetTextMetrics(
HDC hdc, // handle to device context
LPTEXTMETRIC lptm // pointer to text metrics structure
);
Top
8 楼TaiJi1985(太极_实践是检验真理的唯一标准,请没有试过的人保持沉默)回复于 2006-03-24 13:33:58 得分 0
问题解决了。
是一个严重的傻瓜问题。对于字符串常量。
记得林锐《高质量c++编程》上说,
sizeof(字符串常量)和 strlen(字符串常量)相等。
就在GetTextExtentPoint32的字符串长度参数传入了sizeof,结果可想而知。
改成sizeof,还是不对。又晕了。
后来发现,我写字的那个函数,中改变了字体,在写字前我调用了取长度函数,自然不准了。
修改后,一切正常,准的都让我吃惊。
谢谢各位的帮忙,特将我犯的低级错误陈述如上,假若某日有一和我同等菜鸟的人,
看到此贴,也能开怀一笑。Top
9 楼TaiJi1985(太极_实践是检验真理的唯一标准,请没有试过的人保持沉默)回复于 2006-03-24 13:34:41 得分 0
问题解决了。
是一个严重的傻瓜问题。对于字符串常量。
记得林锐《高质量c++编程》上说,
sizeof(字符串常量)和 strlen(字符串常量)相等。
就在GetTextExtentPoint32的字符串长度参数传入了sizeof,结果可想而知。
改成strlen,还是不对。又晕了。
后来发现,我写字的那个函数,中改变了字体,在写字前我调用了取长度函数,自然不准了。
修改后,一切正常,准的都让我吃惊。
谢谢各位的帮忙,特将我犯的低级错误陈述如上,假若某日有一和我同等菜鸟的人,
看到此贴,也能开怀一笑。
Top




