textmetric结构
生活随笔
收集整理的這篇文章主要介紹了
textmetric结构
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
TEXTMETRIC是在WINGDI.H中定義的型態的結構。 TEXTMETRIC結構有20個欄位: typedef struct tagTEXTMETRIC { // tm 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; 變量: BYTE tmPitchAndFamily:?
TEXTMETRIC類型的變量用于存儲裝置字體結構信息(上述變量),在窗口中輸出文字時需要用到上述變量。
| TMPF_FIXED_PITCH | 為真表示變長型字體,為假是定長型字體 |
| TMPF_VECTOR | 為真表示矢量字體 |
| TMPF_TRUETYPE | 為真表示全真字體 |
| TMPF_DEVICE | 為真表示設備字體。. |
TEXTMETRIC示例
編輯 TEXTMETRIC示例一 要獲得TEXTMETRIC類型變量的值在windows SDK中可以用GetTextMetrics(HDC,LPTEXTMETRIC)函數;在MFC中可以用GetTextMetrics(&tm)。 運用例子如下: 運用Windows SDK的情況: TEXTMETRIC tm; GetTextMetrics(hdc,&tm); 運用MFC 的使用情況: TEXTMETRIC tm; CDC::GetTextMetrics(&tm);TEXTMETRIC示例二
下面是取得系統字體的字符寬度和高度的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 ;轉載于:https://www.cnblogs.com/suzhengxiong/p/6665940.html
總結
以上是生活随笔為你收集整理的textmetric结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 201521123078 《Java程序
- 下一篇: 静态工厂方法之服务提供者框架