GetTextMetrics:获取当前字体的信息GetTextExtent:获取特定的字符串在屏幕上所占的宽度和高度对于这两个函数的作用,我在编程的时候,也有一定的困惑。因此,我也想,其他人在编程的时候也肯定有 同样的困惑。所以我把他们解释一下。不足之处,还请大家多多的添加 批评~~其实,我们对什么困惑呢?函数的调用方法,还是在返回值上?CDC::GetTextMetrics作用:返回当强设备描述表中的当前所用的字体的信息函数原型:BOOL GetTextMetrics( LPTEXTMETRIC lpMetrics ) const;参数: lpMetrics (是一个指针) 返回指向TEXTMETRIC 结构的一个数据。返回值: 非零值成功要求: 包含头文件: afxwin.h CDC::GetTextExtent Call this member function to compute the width and height of a line of text using the current font to determine the dimensions. 调用这个函数,返回用当前字体写下的一行字符串的高度和宽度函数原型: CSize GetTextExtent( LPCTSTR lpszString, int nCount ) const;CSize GetTextExtent( const CString& str ) const;参数 lpszString指向一个字符串指针,也可以传递一个字符串对象。 nCount指定字符在字符串中的数目 str一个字符串对象,包含指定的字符。 返回值:以逻辑单位返回字符串的尺寸,保存在一个CSize对象中要求:包含头文件 afxwin.h
LPTEXTMETRIC lpMetrics
) const;参数:
lpMetrics (是一个指针)
返回指向TEXTMETRIC 结构的一个数据。返回值:
非零值成功要求:
包含头文件: afxwin.h
CDC::GetTextExtent
Call this member function to compute the width and height of a line of text using the current font to determine the dimensions.
调用这个函数,返回用当前字体写下的一行字符串的高度和宽度函数原型:
CSize GetTextExtent(
LPCTSTR lpszString,
int nCount
) const;CSize GetTextExtent(
const CString& str
) const;参数
lpszString指向一个字符串指针,也可以传递一个字符串对象。
nCount指定字符在字符串中的数目
str一个字符串对象,包含指定的字符。
返回值:以逻辑单位返回字符串的尺寸,保存在一个CSize对象中要求:包含头文件 afxwin.h
我的意识是,我用DrawText画一个很长的字符串子一个固定矩形里面,并且设置了自动换行;
此时这个很长的字符串会在这个矩形里面换成几行或很多行,此时我怎么知道这个字符串在这个矩形里面的整个高度???
例如:
我画字符串str1 = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabbbbb",在一个长20,宽10的矩形里面,此时可能这个str1字符串会换行成3行:
aaaaaaaaaa
aaaaaaaaaa
aaabbbbbbb
这个时候我想知道,这个字符串在矩形中总共有多高? 也就是这三行一起有多高?上面两个函数好像都只能取到单行的高度,但是这时候我不知道系统吧这个字符串画成了几行啊?
因为画几行是系统自动根据矩形宽度进行调整的。请高人指点下。上面那个