[MFC] MFC 字体设置

来源:互联网 发布:红苹果预算软件 编辑:程序博客网 时间:2024/04/30 08:55

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.当字体不用之后删除即可。





0 0
原创粉丝点击