CFont
CFont类为CGdiObject的派生类。
常用的构造函数为CreateFont,CreatePointFont。通常采用这两个函数中的一个作为字体的初始画函数。
CreatePointFont
函数原型
BOOL CreatePointFont( int nPointSize, //以0.1(像素/磅数)为单位 LPCTSTR lpszFaceName, //字体的名字字符串,且最长不超过30个字符串 CDC* pDC = NULL //用于将nPointSize转换为逻辑单元,如果是空,则屏幕上下文将用于此转换 );
示例:
CClientDC dc(this); //得到窗口句柄 CFont font; font.CreatePointFont(120, _T("Arial"), &dc); //初始化font为大小为12磅的Arial字体 CFont* def_font = dc.SelectObject(&font); //将字体选进设备上下文中(device context) dc.TextOut(5, 5, _T("Hello"), 5); //在屏幕上写字 dc.SelectObject(def_font); //将默认的字体选进设备上下文中,替换我们使用的字体 font.DeleteObject();
CreateFont
函数原型
示例:BOOL CreateFont( int nHeight, //字体所需高度。不为0则取绝对值高度,若为0则取缺省值 int nWidth, //字体的平均宽度。 int nEscapement, //每行字体以行首左上角为圆心的行基线偏移X轴的角度(度量单位0.1度,逆时针为正方向) int nOrientation, //每个字符的基线和设备X轴之间的角度 int nWeight, //字体重量(粗度)值为(0-1000)如400表示标准体,700表示黑(粗)体,其中大部分字体都有的默认值为FWP_NORMAL,FW_REGULAR,FW_BLOD BYTE bItalic, //是否为斜体 BYTE bUnderline, //是否有下划线 BYTE cStrikeOut, //是否有删除线 BYTE nCharSet, //指定字符集 BYTE nOutPrecision, //指定输出精度 BYTE nClipPrecision, //指定剪裁精度 BYTE nQuality, //指定输出质量 BYTE nPitchAndFamily, //指定字体间距和字体族,低端二位指定字体的字符间距 LPCTSTR lpszFacename //字体名称 );
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 . CClientDC dc(this); CFont* def_font = dc.SelectObject(&font); dc.TextOut(5, 5, _T("Hello"), 5); dc.SelectObject(def_font); <pre name="code" class="cpp">font.DeleteObject();
注意
1.当字体不用之后删除即可。