總結寫在前面:
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;