总结写在前面:
1、GetTextMetrics : 获取程序当前字体信息,并且存放到TEXTMETRIC结构体中。
2、GetTextExtent : 获取指定字符串的高度和宽度。(GetTextExtent(str))。
一、GetTextMetrics
函数原型: BOOL GetTextMetrics(LPTEXTMETRIC lptm);
参数: lptm:指向结构TEXTMETRIC的指针,该结构用于获得字体信息。
TEXTMETRIC结构体
typedef struct tagTEXTMETRIC
{
LONG tmHeight; //字符高度
LONG tmAscent; //字符上部高度(基线以上)
LONG tmDescent; //字符下部高度(基线以下)
LONG tmInternalLeading, //由tmHeight定义的字符高度的顶部空间数目
LONG tmExternalLeading, //夹在两行之间的空间数目
LONG tmAveCharWidth, //平均字符宽度
LONG tmMaxCharWidth, //最宽字符的宽度
LONG tmWeight; //字体的粗细轻重程度
LONG tmOverhang, //加入某些拼接字体上的附加高度
LONG tmDigitizedAspectX, //字体设计所针对的设备水平方向
LONG tmDigitizedAspectY, //字体设计所针对的设备垂直方向
BCHAR tmFirstChar; //为字体定义的第一个字符
BCHAR tmLastChar; //为字体定义的最后一个字符
BCHAR tmDefaultChar; //字体中所没有字符的替代字符
BCHAR tmBreakChar; //用于拆字的字符
BYTE tmItalic, //字体为斜体时非零
BYTE tmUnderlined, //字体为下划线时非零
BYTE tmStruckOut, //字体被删去时非零
BYTE tmPitchAndFamily, //字体间距(低4位)和族(高4位)
BYTE tmCharSet; //字体的字符集
} TEXTMETRIC;
二、GetTextExtent
函数原型(有两个): CSize GetTextExtent( const CString& str) ; //参数为一个字符串
CSize GetTextExtent(LPCTSTR lpszString, int nCount) ; //参数为字符串指针和字符串长度
返回值:返回字符串尺寸,CSize类
SIZE
typedef struct tagSIZE
{
LONG cx;
LONG cy;
} SIZE;