`
java-mans
  • 浏览: 11435819 次
文章分类
社区版块
存档分类
最新评论

创建字体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);......//后面就是你要输出的东西


下面看看运行结果:

分享到:
评论

相关推荐

    GDI(widowsAPI函数)

    CreateFont 用指定的属性创建一种逻辑字体 CreateFontIndirect 用指定的属性创建一种逻辑字体 CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用 API函数AddFontResource将其加入Windows...

    CreateFont函数生成工具

    选择相应的字体,生成预览,并自动生成CReateFont函数

    e语言-近在眼前-自定义字体宽、高比例例程

    自定义字体宽高比例,源码是易语言API函数CreateFont的应用教程。

    Createfont.txt

    //本方法是通过裁切的sprite导出字体文件,裁切使用的是unity自带的sprite editor,方便操作。 //另外,裁切之后,每个sprite的名字的最后一个字符对应了ascii码的编码,比如: //0: 我们只要将sprite的名字...

    windowsAPI函数

    CreateFont 用指定的属性创建一种逻辑字体 CreateFontIndirect 用指定的属性创建一种逻辑字体 CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用 API函数AddFontResource将其加入Windows...

    WTL在对话框工程中更改字体

    我当时尝试着使用标准的win32函数CreateFont来创建字体,并且返回字体的句柄。再在CStatic类里面调用SetFont()这个函数来使用字体。但是我没有成功。此外我还使用了LOGFONT结构体和CFont、CLogFont类,但是收效甚微...

    MFC设置字体及颜色

    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 ...

    易语言自定义字体宽高比例

    易语言自定义字体宽高比例源码,自定义字体宽高比例,CreateFont

    VC++按钮控件字体设置

    VC++两种比较常用的设置方式:利用CreatePointFont和利用CreateFont,可供参考。

    GDI 字体设置内含每个参数说明 方便使用

    GDI 字体设置内含每个参数说明及使用方法 方便使用

    API取字体宽度

    取字体宽度,取字体高度,GetTextExtentPoint,GetDC,CreateCompatibleDC,CreateFont,MulDiv,GetDeviceCaps,SelectObject,CloseHandle,ReleaseDC,DeleteDC,DeleteObject

    易语言API取字体宽度

    易语言API取字体宽度源码,取字体宽度,取字体高度,GetTextExtentPoint,GetDC,CreateCompatibleDC,CreateFont,MulDiv,GetDeviceCaps,SelectObject,CloseHandle,ReleaseDC,DeleteDC,DeleteObject

    canvas创建文字笔画坐标,绘制和识别

    2 访问createfont.html,F12切换到移动端模式。 2.1 【必要】 先点击创建字模,这时画布会出现方格(可以在源码里改变jg变量的大小),点击方格的不同位置创建笔画。一定要点击,不要拖动。 2.2 【必要】 点击保存...

    易语言自定义字体宽、高比例

    易语言自定义字体宽、高比例源码,自定义字体宽、高比例,CreateFont

Global site tag (gtag.js) - Google Analytics