创建字体CreateFont,CreateFontIndirect

跟画刷,区域一样,字体是GDI其中的一个对象,可以使用SelectObject来添加到HDC环境中。

创建字体有两种方法

1CreateFont

 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       //字体名称

                                );  



2CreateFontIndirect

HFONT CreateFontIndirect(
  CONST LOGFONT* lplf   // characteristics
);

看看LOGFONT的定义:

typedef   struct   tagLOGFONT   {   //   lf    

LONG   lfHeight;                   //字体的高度

LONG   lfWidth;                     //字体的宽度

LONG   lfEscapement;           //字体显示的角度

LONG   lfOrientation;         //字体的角度

LONG   lfWeight;                   //字体的磅数

BYTE   lfItalic;                   //斜体字体

BYTE   lfUnderline;             //带下划线的字体

BYTE   lfStrikeOut;             //带删除线的字体

BYTE   lfCharSet;                 //所需的字符集

BYTE   lfOutPrecision;       //输出的精度

BYTE   lfClipPrecision;     //裁减的精度

BYTE   lfQuality;                 //逻辑字体与输出设备的

                                                                                        //实际字体之间的精度

BYTE   lfPitchAndFamily;   //字体间距和字体集

TCHAR   lfFaceName[LF_FACESIZE];   //字体名称

      }   LOGFONT;  



方法一:利用CreateFont方法来创建字体

SelectObject(hdc,CreateFont(0,0,0,0,0,0,0,0,XXCharSet,0,0,0,FIXED_PITCH,NULL));//至于默认值取什么,自己查表,这里不重点讲


方法二:利用CreateFontIndirect方法创建字体(重点讲)

看看代码:

case WM_PAINT ://前面声明了LOGFONT lonfont;
          hdc = BeginPaint (hwnd, &ps) ;
		 
		 GetObject(GetStockObject(SYSTEM_FONT),sizeof(LOGFONT),&logfont);
		 logfont.lfItalic=true;//使用斜体
		 logfont.lfHeight=16;//字体高度为16PX
		 logfont.lfWeight=20;//字体宽度为20PX
		 logfont.lfCharSet=GB2312_CHARSET;//国标2312
		 wsprintf(logfont.lfFaceName,TEXT("%s"),TEXT("宋体"));
		 hfont=CreateFontIndirect(&logfont);//字体为宋体
		 SelectObject(hdc,hfont);......//后面就是你要输出的东西


下面看看运行结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值