天天看點

createfont函數_windows程式設計基于.net平台代碼示例參數講解

大家好,又見面了,我是你們的朋友全棧君。

文章目錄

  • 代碼示例
  • 參數講解
    • 函數功能
    • 函數原型:
    • 參數:

代碼示例

CFont * f; 
   f = new CFont; 
   f->CreateFont(10, // nHeight 
        0, // nWidth 
        0, // nEscapement 
        0, // nOrientation 
        FW_BOLD, // nWeight 
        FALSE, // bItalic 
        FALSE, // bUnderline 
        0, // cStrikeOut 
        ANSI_CHARSET, // nCharSet 
        OUT_DEFAULT_PRECIS, // nOutPrecision 
        CLIP_DEFAULT_PRECIS, // nClipPrecision 
        DEFAULT_QUALITY, // nQuality 
           DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily 
           _T("Arial")); // lpszFac           

複制

參數講解

cHeight是字型的高度。

cWidth是字型的寬度。

cEscapement是字型的傾斜角。

cOrientation是字型的傾斜角。

cWeight是字型的粗細。

bItalic是字型是否斜體。

bUnderline是字型是否有下劃線。

bStrikeOut是字型是否有删除線。

iCharSet是字型使用的字元集。

iOutPrecision是指定怎樣選擇合适的字型。

iClipPrecision是用來确定裁剪的精度。

iQuality是怎麼樣跟選擇的字型相符合。

iPitchAndFamily是間距标志和屬性标志。

pszFaceName是字型的名稱。

函數功能

該函數建立一種有特殊性的邏輯字型。此邏輯字型能夠在後面被不論什麼裝置選擇。

函數原型:

HFONT CreateFont(int nHeight, int nWidth, int nEscapement, int nOrientation, int fnWeight, DWORD fdwltalic, DWORD fdwUnderline, DWORD fdwStrikeOut, DWORD

fdwCharSet, DWORD fdwOutputPrecision, DWORD fdwClipPrecision, DWORD fdwQuality, DWORD fdwPitchAndFamily, LPCTSTR lpszFace)。           

複制

參數:

nHeight:指定字型的字元單元或字元的邏輯機關高度。字元的高度值(也被稱為em高度)是指字元單元高度值減去内部标頭值。字型映射器以例如以下方式解釋nHeight指定的值,各值含義為:

>0:字型映射器轉換這個值以裝置機關,并和已有字型的單元高度相比對。
0:字型映射器轉換在選擇比對時用一個預設的高度值。
<0:字型映射器轉換這個值到裝置機關,并将它的絕對值和已有字型的字元高度相比對。           

複制

比較全部的高度,字型映射器選擇不超過要求大小的最大字型。

此映射當字型第一次被使用時發生。

對于MM_TEXT映射方式,能夠用以下的公式為一種指定了點大小的字型确定高度:

nHeight=-MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY),72)

nWidth:指定所要求字型的字元的邏輯機關的平均寬度。假設此值為0,字型映射器選擇一個closest match值。closest match值是由比較目前裝置的特征系數與可使用字型的數字化特征

系數之差的絕對值而确定的。

nEscapement:指定移位向量和裝置X軸之間的一個角度。以十分之中的一個度為機關。

移位向量平行于正文行的基線。

Windows NT:當圖形裝置設定為GM_ADVANCED時。能夠不依賴字元串的字元的定位角而指定字元串的移位角。

當圖形模式被設定為GM_COMPATIBLE時,nEscapement同一時候指定移位角和定位角,能夠設定nEscapement和nOrientation為同樣的值。

Windows 95:nEscapement同一時候指定移位角和定位角,可設定nEscapement和nOrientation為同樣的值。

nOrientation:指定每一個字元的基線和裝置X軸之間的角度。

FnWeight:在0到1000之間指定字型的權值。如400表示标準體,700表示黑(粗)體。假設此值為0,則使用預設的權值。

為友善定義,可使用例如以下值:

FW_DONTCARE:0;FW_THIN;100;FW_EXTRALIGHT;200;FW_ULTRALIGHT;200;FW_LIGHT。300;

FW_NORMAL:400;FW_REGULAR;400。FW_MEDIUM。500;FW_SEMIBOLD;600;FW_DEMIBOLD;600。

FW_BOLD:700;FW_EXTRABOLD。800;FW_ULTRABOLD;800;FW_HEAVY;900;FW_BLACK;900。           

複制

fdwItalic:假設設定為TRUE則指定斜體。

fdwUnderline:假設設定為TRUE,則指定加下劃線的字全。

fdwStrikeOut:假設設定為TRUE,則strikeout指定字型。

fdwCharSet:指定字元集。下列值是提前定義的:

ANSI_CHARSET; BALTIC_CHARSET; CHINESEBIG5_CHARSET; DEFAULT_CHARSET;

EASTEUROPE_CHARSET; GB2312_CHARSET; GREEK_CHARSET; HANGUL_CHARSET; MAC_CHARSET; OEM_CHARSET; RUSSIAN_CHARSET; SHIFTJIS_CHARSET;

SYMBOL_CHARSET; TURKISH_CHARSET。

南韓Windows:JOHAB_CHARSET;

中東地區Windows:HEBREW_CHARSSET; ARABIC_CHARSET

泰國Windows:THAI_CHARSET

OEM_CHARSET指定的字元集與作業系統有關。

能夠使用DEFAULT_CHARSET值來同意字型的名字和大小來充分描寫叙述邏輯字型。

假設指定的字型名不存在,不論什麼字元集的字型都能夠替代指定的字型。是以應該小心地用

DEFAULT_CHARSET來避免不期望的結果出現。

作業系統中存在其它字元集的字型。假設一個應用程式用一種未知字元集的字型,則應用程式不會試圖去翻譯或解釋用那種字型寫出來的字元串。

在字型映射過程中此參數非常重要。為確定獲得一緻的結果。指定一個特殊的字元集。

假設在lpszFace參數中指定了一個字型名。确定fdwCharSet值與由lpszFace指定的字型字元集是否匹

配。

fdwOutputPrecision:指定輸出精度,輸出精度義輸出與要求的字型高度、寬度、字元定位、移位、字元間距和字元類型的比對程式。它可取下列值之中的一個:

OUT_CHARACTER_PRECIS。未用。

OUT_DEFAULT_PRECIS:指定預設的字型映射器狀态。

OUT_DEVICE_PRECIS:訓示字型映射器在當系統裡有多種字型使用同一個字型使用同一個名字時選擇一種裝置字型。

OUT_OUTLINE_PRCIS:在Windows NT中此值訓示字型映射器從TrueType和其它基于邊框的字型中選擇。

OUT_RASTER_PRECIS:訓示字型映射器在當系統裡有多種字型使用同一個名字時選擇一種光栅字型。

OUT_STRING_PRECIS:此值沒有被字全映射器使用。可是當掃描字型被列舉時作為傳回值。

OUT_STROKE_PRECIS:在Windows NT中此值沒有被字型映射器使用。可是當TrueType字型、其它基于邊框的字型和向量字型被列舉時,作為傳回值。

Windows 95:此值沒有被字型映射器使用。可是當TrueType字型或向量字型被列舉時,作為傳回值。

OUT_TT_ONLY_PRECIS:訓示字型映射器僅從TrueType字型中選擇,假設系統中沒有安裝TrueType字型,則字型映射傳回預設狀态。、

OUT_TT_PRECIS:訓示字型映射器在當系統裡有多種同名的字型時選擇一種TrueType字型。

當作業系統含有多種與指定名字同名的字型時。應用程式能夠使用OUT_DEVICE_PRECIS,OUT_RASTER_PRECIS和OUT_TT_PRECIS值來控制字型映射器怎樣選擇一種字型,比如。           

複制

假設作業系統含有名字Symbol的光栅和TrueType兩種字型,指定OUT_TT_PRECIS使字型映射器選擇TrueType方式。

指定OUT_TT_ONLY_PRECIS使字型映射器選擇一種TrueType字型。

雖然這會給TrueType字型換一個名字。

fdwClipPrecision;指定裁剪精度。裁剪精度定義怎樣裁剪部分超出裁剪區的字元。它可取一個或多個下列值:

CLIP_DEFAULT_PRECIS:指定預設裁剪狀态。

CLIP_CHARACTER_PRECIS:未用。

CLIP_STROKE_PRECIS:未被字型映射器使用。可是當光栅字型、向量字型或TrueType字型被列舉時作為傳回值。

在Windows環境下。為保證相容性,當列舉字型時這個值總被傳回。

CLIP_MASK:未用。

CLIP_EMBEDDED:要使用嵌入式僅僅讀字型必須使用此标志。

CLIP_LH_ANGLES:當此值被使用時。全部字型的旋轉依賴于坐标系統的定位是朝左的還是朝右的。

假設未使用此值,裝置字型總是逆時針方向旋轉。但其它字型的旋轉依賴于坐标系統的定向。要得到很多其它關于坐标系統定向的資訊。參見參數orientation。

CLIP_TT_ALWAYS:未用。

fdwQuality:指向輸出品質。輸出品質定義GDI怎樣細緻地将邏輯字型屬性與實際實體字型屬性相比對。它可取下列值之中的一個:

DEFAULT_QUALITY:字型的外觀不重要。

DRAFT_QUALITY:字型外觀的重要性次于使用PROOF_QUALITY時。對GDI光栅字型。縮放比例是活動的,這意味着多種字型大小可供選擇,但品質可能不高,假設有必要。粗體、斜體

、下劃線、strikeout字型可被綜合起來使用。

PROOF_QUALITY:字元品質比精确比對邏輯字型字型屬性更重要。對GDI掃描字型,縮放比例是活動的。并選擇最接近的大小。雖然當使用PROOF_QUALITY時,選擇字型大小并不完

全比對。但字型的品質非常高,并沒有外觀上的變形。假設有必要,粗體、斜體、下劃線、strikeout字型可被綜合起來使用。

fdwPitchAndFamily:指定字型間距和字型族,低端二位指定字型的字元間距,它可取下列值之中的一個:

DEFAULT_PITCH;FIXED_PITCH; VARIABLE_PITCH

高端四位指定字型族,可取下列值之中的一個:

FF_DECORATIVE:新鮮的字型。如老式英語(Old English)。FF_DONTCARE:不關心或不知道。

FF_MDERN:筆劃寬度固定的字型,有或者無襯線。如Pica、Elite和Courier New。

FF_ROMAN:筆劃寬度變動的字型,有襯線。如MS Serif。

FF_SCRIPT:設計成看上去象手寫體的字型。如Script和Cursive。

FF_SWISS:筆劃寬度變動的字型,無斜線。如MS Sans Serif。

應用程式能夠用運算符OR将字元間距和字型族組合起來給fdwPitchAndFamily指派。

字型族描寫叙述一種字型的普通外觀,當全部的精确字樣都不能使用時,可用它們來指定字型。

lpszface:指向指定字型的字樣名的、以/0結束的字元串指針,字元串的長度不能超過32個字元(包含字元/0)。函數EnumFontFamilies可用來列舉全部目前可用字型的字樣名。

假設lpszFace為NULL或指向一個空串,GDI使用能比對其它屬性的第一種字型。

傳回值:假設函數調用成功,傳回值是一種邏輯字型句柄。假設函數調用失敗,傳回值為NULL。           

複制

釋出者:全棧程式員棧長,轉載請注明出處:https://javaforall.cn/170973.html原文連結:https://javaforall.cn