TEXTMETRIC

TEXTMETRIC是在WINGDI.H中定義的型態的結構。

基本介紹

  • 外文名:TEXTMETRIC
  • 欄位:20個
  • 變數:TMPF_FIXED_PITCH
  • 用於:存儲裝置字型結構信息
結構體各成員介紹,示例,示例一,示例二,

結構體各成員介紹

TEXTMETRIC是在WINGDI.H中定義的型態的結構。
TEXTMETRIC結構有20個欄位:
typedef struct tagTEXTMETRIC { // tm
LONG tmHeight; //字元高度
TEXTMETRIC結構欄位的圖示TEXTMETRIC結構欄位的圖示
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;
變數:
BYTE tmPitchAndFamily:
TMPF_FIXED_PITCH
為真表示變長型字型,為假是定長型字型
TMPF_VECTOR
為真表示矢量字型
TMPF_TRUETYPE
為真表示全真字型
TMPF_DEVICE
為真表示設備字型。.
TEXTMETRIC類型的變數用於存儲裝置字型結構信息(上述變數),在視窗中輸出文字時需要用到上述變數。

示例

示例一

要獲得TEXTMETRIC類型變數的值在windows SDK中可以用GetTextMetrics(HDC,LPTEXTMETRIC)函式;在MFC中可以用GetTextMetrics(&tm)。
運用例子如下:
運用Windows SDK的情況:
TEXTMETRIC tm;
GetTextMetrics(hdc,&tm);
運用MFC 的使用情況:
TEXTMETRIC tm;
CDC::GetTextMetrics(&tm);

示例二

下面是取得系統字型的字元寬度和高度的WM_CREATE程式代碼:
case WM_CREATE:
hdc = GetDC (hwnd) ;
GetTextMetrics (hdc, &tm) ;
cxChar = tm.tmAveCharWidth ;
cyChar = tm.tmHeight + tm.tmExternalLeading ;
ReleaseDC (hwnd, hdc) ;
return 0 ;
其中cxChar、cyChar、cxCaps都是在回調函式中定義的static int類型的變數。對於固定寬度的字型, cxCaps等於cxChar。對於可變寬度字型,cxCaps設定為cxChar乘以150%。對於可變寬度字型,TEXTMETRIC結構中的tmPitchAndFamily欄位的低位為1,對於固定寬度字型,該值為0。 示例二中使用這個位從cxChar計算cxCaps: cxCaps = (tm.tmPitchAndFamily & 1 ? 3 : 2) * cxChar / 2 ;

相關詞條

熱門詞條

聯絡我們