发布时间:2025-12-10 19:29:46 浏览次数:3
CFont::CreateFont 详解函数原型:BOOLCreateFont(intnHeight,intnWidth,intnEscapement,intnOrientation,intnWeight,BYTEbItalic,BYTEbUnderline,BYTEcStrikeOut,BYTEnCharSet,_font.createfont
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:指定字体的字符单元或字符的逻辑单位高度。
nWidth:指定所要求字体的字符的逻辑单位的平均宽度。如果此值为0,字体映射器选择一个closest match值,closest match值是由比较当前设备的特征系数与可使用字体的数字化特征系数之差的绝对值而确定的。
nEscapement:指定移位向量和设备X轴之间的一个角度,以十分之一度为单位。移位向量平行于正文行的基线。
nOrientation:指定每个字符的基线和设备X轴之间的角度。
nWeight:指定字体粗细。在0到1000之间指定字体的权值,如400表示标准体,700表示黑(粗)体,如果此值为0,则使用缺省的权值。下列值是预定义:FW_DONTCARE:0;FW_THIN;100;FW_EXTRALIGHT;200;FW_ULTRALIGHT;200;FW_LIGHT;300;FW_NORMAL:400;FW_MEDIUM;500;FW_SEMIBOLD;600;FW_DEMIBOLD;600;FW_BOLD:700;FW_EXTRABOLD;800;FW_BLACK;900。
bItalic:指定字体是否为斜体。如果设置为TRUE,则字体设置为斜体。
bUnderline:指定字体是否加下划线。如果设置为TRUE,则字体增加下划线。
cStrikeOut:指定字体是否加删除线。如果设置为TRUE,则字体增加删除线。
nCharSet::指定字符集。OEM_CHARSET指定的字符集与操作系统有关。可以使用DEFAULT_CHARSET值来允许字体的名字和大小来充分描述逻辑字体。如果指定的字体名不存在,任何字符集的字体都可以替代指定的字体,所以应该小心地用DEFAULT_CHARSET来避免不期望的结果出现。
nOutPrecision:指定输出精度,输出精度定义的输出必须密切匹配请求的字体的高度、宽度、字符定位、移位、字符间距和字符类型。
nClipPrecision:指定裁剪精度,裁剪精度定义如何裁剪部分超出裁剪区的字符。
nQuality:指向输出质量,输出质量定义GDI如何仔细地将逻辑字体属性与实际物理字体属性相匹配。
nPitchAndFamily:指定字体间距和系列,低端二位指定字体的字符间距。
lpszFacename:字体名称。指向指定字体的字样名的、以\0结束的字符串指针,字符串的长度不能超过32个字符(包括字符\0),函数EnumFontFamilies可用来列举所有当前可用字体的字样名。 如果 lpszFacename 是 NULL,GDI使用与设备无关的字样。
如果成功,非零;否则为0。
需要包含头文件#include “afxwin.h”
可以为设备上下文设定字体。
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(); 希望我今天分享的这篇文章可以帮到您。