共用方式為


CFont::CreateFont

使用指定的 CFont 特性來建立物件。

BOOL CreateFont( 
   int nHeight, 
   int nWidth, 
   int nEscapement, 
   int nOrientation, 
   int nWeight, 
   BYTE bItalic, 
   BYTE bUnderline, 
   BYTE cStrikeOut, 
   BYTE nCharSet, 
   BYTE nOutPrecision, 
   BYTE nClipPrecision, 
   BYTE nQuality, 
   BYTE nPitchAndFamily, 
   LPCTSTR lpszFacename  
);

參數

  • nHeight
    指定所需的高度 (以邏輯單位 (Logical Unit) 字型。 提供說明請參閱 LOGFONT結構的 lfHeight 成員在 Windows SDK 的。 在轉換之後, nHeight 的絕對值不能超過 16,384 個單位。 對於所有高度比較,字型對應器會尋找不超過所要求的大小或最小字型的最大字型,如果所有字型超過所要求的大小。

  • nWidth
    在指定字型的平均寬度 (以邏輯單位 (Logical Unit) 的字元。 如果為 0, nWidth 裝置的外觀比例會與可用字型的數位板外觀比例比尋找最接近的相符項目,取決於這項差異的絕對值。

  • nEscapement
    指定 (角度為 0.1 度單位) 在字體斜度向量和顯示介面的 X 軸之間。 字體斜度向量是線條會穿過原點的第一個和上一行的最後一個字元。 這個角度從 X 軸逆時針測量。 請參閱 LOGFONT 結構的 lfEscapement 成員在 Windows SDK 以取得詳細資訊。

  • nOrientation
    指定 (角度為 0.1 度單位) 中字元的基準線與 X 座標之間。 這個角度從 Y 方向和遞減順時鐘從座標系統的 X 軸和 Y 引發的座標系統的 X 軸逆時針測量。

  • nWeight
    指定字型粗細 (在手寫每像素 1000)。 請參閱 LOGFONT 結構的 lfWeight 成員在 Windows SDK 以取得詳細資訊。 中描述的只是大約的值;這個實際外觀取決於字樣。 有些字型會 FW_NORMAL、 FW_REGULAR和只 FW_BOLD 粗細。 如果 FW_DONTCARE 指定,則會使用預設權重。

  • bItalic
    指定字型是否為斜體。

  • bUnderline
    指定是否將字型加上底線。

  • cStrikeOut
    在指定的字元字型是否為加刪除線。 指定、底線字型,如果設定為非零的值。

  • nCharSet
    在 Windows SDK 的 LOGFONT 結構指定字型的字元 setSee lfCharSet 成員的值清單。

    OEM 字元集與系統相關。

    有字元集的字型可能存在於系統。 使用具有一個未知的字元集的字型的應用程式不要嘗試轉譯或說明要呈現該字型的字串。 相反地,應將字串直接加入至輸出裝置驅動程式。

    字型對應器不使用 DEFAULT_CHARSET 值。 應用程式可以使用這個值允許的字型名稱及大小完整描述邏輯字型。 如果具有指定之名稱的字型不存在,它會從任何字元集的字型可以用指定的字型會替代。 若要避免發生非預期的結果,應用程式應該謹慎使用 DEFAULT_CHARSET 值。

  • nOutPrecision
    指定所需的輸出精確度。 輸出精確度可定義輸出必須與所要求字型之高度、寬度、字元方向、字體斜度、字幅。 將會用於值和詳細資訊清單中看到 LOGFONT 結構的 lfOutPrecision 成員在 Windows SDK 。

  • nClipPrecision
    指定所要裁剪的精確度。 裁剪精確值會定義如何裁剪部分位於裁剪區域外的字元。 在值清單中看到 LOGFONT 結構的 lfClipPrecision 成員在 Windows SDK 。

    若要使用內嵌的唯讀字型,應用程式必須指定 CLIP_ENCAPSULATE。

    為了達到裝置的一致的旋轉, TrueType 和向量字型,應用程式可以使用合併 CLIP_LH_ANGLES 值的或運算子與任何其他 nClipPrecision 值。 如果 CLIP_LH_ANGLES 位元設定為,所有字型的旋轉取決於這個座標系統的方向是以或慣用右手的。 (如需座標系統的方向的詳細資訊,請參閱 nOrientation 參數說明)。如果 CLIP_LH_ANGLES 未設定,則裝置字型逆時針旋轉,永遠,但是其他字型的旋轉依賴這個座標系統的方向。

  • nQuality
    指定字型的輸出品質,定義了 GDI 必須小心嘗試符合邏輯字型屬性加入這些實際的實體字型。 在值清單中看到 LOGFONT 結構的 lfQuality 成員在 Windows SDK 。

  • nPitchAndFamily
    指定字型的字幅和家族。 將會用於值和詳細資訊清單中看到 LOGFONT 結構的 lfPitchAndFamily 成員在 Windows SDK 。

  • lpszFacename
    CString 或指標設定為指定的字型字樣名稱的 NULL 結尾字串。 這個字串的長度不能超過 30 個字元。 視窗 EnumFontFamilies 函式可用於列舉目前所有可用的字型。 如果是, lpszFacenameNULLGDI 使用與裝置無關的字樣。

傳回值

如果不是零,則成功,則為 0。

備註

字型接著選取做為字型對於所有裝置內容。

CreateFont 函式不會建立新的 Windows GDI 字型。 它只會選取最接近的相符項目從實體字型可用的 GDI。

表示建立邏輯字型時,應用程式可用於大部分的參數會使用預設值。 應該永遠都會提供特定值的參數是 nHeight 和 lpszFacename。 如果 nHeight 和 lpszFacename 應用程式未設定,則建立的邏輯字型與裝置相關。

當您完成使用 CreateFont 函式時所建立的 CFont 物件,請使用 CDC::SelectObject 選取不同的字型的裝置內容,然後刪除不再需要的 CFont 物件。

範例

// The code fragment shows how to create a font object, 
// select the font object into a DC (device context) for text 
// drawing, and finally delete the font object. 

// Initializes a CFont object with the specified characteristics. 
CFont font;
VERIFY(font.CreateFont(
   12,                        // nHeight
   0,                         // nWidth
   0,                         // nEscapement
   0,                         // nOrientation
   FW_NORMAL,                 // 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")));                 // lpszFacename 

// Do something with the font just created...
CClientDC dc(this);  
CFont* def_font = dc.SelectObject(&font);
dc.TextOut(5, 5, _T("Hello"), 5);
dc.SelectObject(def_font);

// Done with the font.  Delete the font object.
font.DeleteObject(); 

需求

標題: afxwin.h

請參閱

參考

CFont 類別

階層架構圖表

CFont::CreateFontIndirect

CFont::CreatePointFont

CreateFont

EnumFontFamilies

EnumFonts

LOGFONT