创建字体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 //字体名称
- );
![](http://static.blog.csdn.net/images/save_snippets.png)
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;
![](http://static.blog.csdn.net/images/save_snippets.png)
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));//至于默认值取什么,自己查表,这里不重点讲
![](http://static.blog.csdn.net/images/save_snippets_01.png)
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) ;
- LOGFONT logfont;
- 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);......//后面就是你要输出的东西
![](http://static.blog.csdn.net/images/save_snippets.png)
case WM_PAINT ://前面声明了LOGFONT lonfont;hdc = BeginPaint (hwnd, &ps) ;GetObject(GetStockObject(SYSTEM_FONT),sizeof(LOGFONT),&logfont);logfont.lfItalic=true;//使用斜体logfont.lfHeight=16;//字体高度为16PXlogfont.lfWeight=20;//字体宽度为20PXlogfont.lfCharSet=GB2312_CHARSET;//国标2312wsprintf(logfont.lfFaceName,TEXT("%s"),TEXT("宋体"));hfont=CreateFontIndirect(&logfont);//字体为宋体SelectObject(hdc,hfont);......//后面就是你要输出的东西
下面看看运行结果:
创建字体CreateFont,CreateFontIndirect相关推荐
- VS2019 MFC CreateFontW 创建字体函数详细解读
CreateFontW 函数 (wingdi.h) 项目 2022/09/28 4 个参与者 反馈 CreateFont 函数创建具有指定特征的逻辑字体. 随后可将逻辑字体选为任何设备的字体. 语法 ...
- Android字体占有内存,android随意创建字体对象引发的应用程序运行时占用内存过大...
android随意创建字体对象引发的应用程序运行时占用内存过大 在实际开发android项目过程中,由于是初次设置android系统没有的字体,所以用到了一个外部文件FounderFineRoundS ...
- 无法找到或创建字体'SansSerif'.某些字符可能无法正确显示或打印。
无法找到或创建字体'SansSerif'.某些字符可能无法正确显示或打印. 原因:繁体CAD生成的PDF造成的. /Files/cnaspnet/SansSerif.rar 转载于:https://w ...
- Creating a Font for Apps and Games with Glyphs 如何使用Glyphs为应用和游戏创建字体 Lynda课程中文字幕
Creating a Font for Apps and Games with Glyphs 中文字幕 如何使用Glyphs为应用和游戏创建字体 中文字幕Creating a Font for App ...
- docx_demos(创建文档类Document及属性方法, 创建段落文本类Paragraph及段落格式设置, 创建字体设置类Run及属性等)
""" docx_demos.py(创建文档类Document及属性方法, 创建段落文本类Paragraph及段落格式设置, 创建字体设置类Run及属性等)使用:一.创建 ...
- 手写英文油漆字体字体_通过手写创建字体
手写英文油漆字体字体 At YourFonts.com you can create a font based on a sample of your handwriting, then use it ...
- (24)ObjectARX2015 + vs2012创建字体样式
1. 说明 AutoCAD 中可以使用 STYLE 命令创建新的字体样式,包括 设置样式名. 选择字体文件. ...
- 41.设置windows系统字体CreateFont、CreateFontIndirect、GetStockObject
设置字体,建议在WM_CREATE消息处理中进行设置 设置系统字体有多种方法 方法一:CreateFont函数设置每一个参数 HFONT hFont = CreateFont(80,0,0,0,0,0 ...
- bmp font 如何创建字体文件(图片字)
在游戏制作的过程中,总会有特殊的需求,比如一个暴击或者获得奖励提示什么的,是需要一个好看的图片来展示的,但是如果有些字是通用的,比如数字,不能每一个数儿都让美术出一个图,只需要0-9,这10张图片就可 ...
最新文章
- 通过Dapr实现一个简单的基于.net的微服务电商系统(十九)——分布式事务之Saga模式...
- 实验6.2 定义一个基类BaseClass,观察构造函数和析构函数的执行情况。
- F5讲坛:虚拟化数据中心的安全问题-F5白皮书
- OFFICE技术讲座:边框底纹对布局的影响
- 记录 Kindle Fire HDX 7 安装 Google Play 服务过程
- 在VC下实现串口通讯
- 昂达 v891 v1 终于 删除 windows 分区 并且恢复了容量。
- 【面经】华为OD软件测试
- C#Application.DoEvents();的作用。
- java 写一个HelloJavaWorld你好世界输出到操作系统文件Hello.txt文件中
- ubuntu播放mp4的插件
- Dell电脑 两块硬盘的efi启动分配
- CUIT CTF WriteUp-Code100
- 有限元法的学习(一)
- VisualSVN Server版本库搭建
- 网页设计作业 仿苏宁易购商城网站设计——仿苏宁易购官网商城(1页) HTML+CSS+JavaScript web网页大作业
- 【4.0】 数学建模中拟合算法详解|内附清晰图片和详细代码实现
- ceb怎么转换成word_pdf怎么转换成Word?分享PDF转word3种方法!
- 这些牛人,你能看的他们的脸
- Luminar AI for Mac v1.5.0 AI照片编辑器