MFC 字体创建

1.第一种 

font.CreateFont(160, 0, 0, 0, FW_NORMAL, 0, 0, 0, DEFAULT_CHARSET,

                   OUT_CHARACTER_PRECIS, CLIP_CHARACTER_PRECIS, DEFAULT_QUALITY,

                   DEFAULT_PITCH | FF_DONTCARE, "宋体");

函数原型:

     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           :字体高度. 三中情况 1、>0:字体的高度值(设备坐标);2、=0:字体采用缺省值. 3、<0:此值的绝对值为高度。(可以设置成像素大小,使其填满整个区域)

     nWidth           :字体宽度.

     nEscapement      :文本行的倾斜度.

     nOrientation       :字符基线的倾斜度.

     nWeight          :字体的粗细.如下:

       .FW_DONTCARE

       .FW_THIN

       .FW_EXTRALIGHT

        .....

     bItalic             :字体是否为斜体

     bUnderline         :字体是否带下划线

     cStrikeOut          :字体是否带删除线

     nCharSet           :字体的字符集

       .ANSI_CHARSET

       .DEFAULT_CHARSET

       .SYMBOL_CHARSET.....

     nOutPrecision      :字符的输出精度

     nClipPrecision      :字符裁剪的精度

     nQuality           :字符的输出质量

     nPitchAndFamily    :字符间距和字体族(低位说明间距,高位说明字符族)

     lpszFacename       :字体名称

2.第二种

1.将CFont m_font声明为类成员变量;

2.在初始化函数中:

m_font.CreatePointFont(100,_T("微软雅黑"));//100是可调字体大小。

函数原型:

  BOOL CreatePointFont(

  int nPointSize,

  LPCTSTR lpszFaceName,

  CDC* pDC = NULL

  );

参数:

    nPointSize

  请求的字体的大小 。单位是磅的10倍 。

    磅和像素的关系:

        国外字体的大小一般是用磅表示,也就是PointSize的单位,1英寸=72磅, (Microsoft WORD 中指定字体的大小就是磅单位的)在实际应用中我们通常使用逻辑点,即象素点数目作为尺寸创建字体,比如用函数CreateFont。或者像 LOGFONT中lfHeight和lfWidth, 一般显示器上72磅的字在显示器上高度lfHeight是96个象素点,你输入参数100,表示需要10磅的字体,系统找到最匹配的大约就是10几个象素点的字体(96*10/72)。

  lpszFaceName

  一个CSTring或者一个指向null-terminated(以空为结尾的)字符串指针来标注字体名称。长度不得超过30个字母。函数EnumFontFamilies可列举能够使用的字体。如果lpszFaceName是NULL,那么GDI uses a device-independent typeface.

  pDC

  指向CDC对象的指针,用来将字体大小转化为逻辑单位,如果是NULL,那么就根据屏幕当前的上下文(context)来转化

  返回值

  非零为成功,否则失败

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值