文字的出现历史可以追溯到甲骨文的使用,直到今天使用的宋体文字。在软件开发里,经常遇到是跨国语言的使用,由于世界在变平,全球在变小,交通运输非常发达,由我所在的深圳,向东坐飞机12个小时就可以到达伦敦,向西坐飞机12小时就可以到达美国,可算得上朝发夕至。比如像炒外汇的人,一天可以不用睡觉都在工作着,比如早上炒东京的汇市,下午就可以炒伦敦的,晚上就可以炒纽约的了。软件的开发,也在全球化,比如昨晚在美国开发,早上就可以变成中国开发同样的软件了,一天24小时开发,这样加速软件的开发。全球的市场已经变得同步化了,开发的软件可以适应任何有人类的地方。经常开发的软件,就需要有中英双语化。这样就需要使用到不同的字体,才能适应国际化的需要,下面就来学习怎么样创建字体,并且使用它。
函数CreateFont声明如下:
WINGDIAPI HFONT   WINAPI CreateFontA( __in int cHeight, __in int cWidth, __in int cEscapement, __in int cOrientation, __in int cWeight, __in DWORD bItalic,
                             __in DWORD bUnderline, __in DWORD bStrikeOut, __in DWORD iCharSet, __in DWORD iOutPrecision, __in DWORD iClipPrecision,
                             __in DWORD iQuality, __in DWORD iPitchAndFamily, __in_opt LPCSTR pszFaceName);
WINGDIAPI HFONT   WINAPI CreateFontW( __in int cHeight, __in int cWidth, __in int cEscapement, __in int cOrientation, __in int cWeight, __in DWORD bItalic,
                             __in DWORD bUnderline, __in DWORD bStrikeOut, __in DWORD iCharSet, __in DWORD iOutPrecision, __in DWORD iClipPrecision,
                             __in DWORD iQuality, __in DWORD iPitchAndFamily, __in_opt LPCWSTR pszFaceName);
#ifdef UNICODE
#define CreateFont CreateFontW
#else
#define CreateFont CreateFontA
#endif // !UNICODE
cHeight是字体的高度。
cWidth是字体的宽度。
cEscapement是字体的倾斜角。
cOrientation是字体的倾斜角。
cWeight是字体的粗细。
bItalic是字体是否斜体。
bUnderline是字体是否有下划线。
bStrikeOut是字体是否有删除线。
iCharSet是字体使用的字符集。
iOutPrecision是指定如何选择合适的字体。
iClipPrecision是用来确定裁剪的精度。
iQuality是怎么样跟选择的字体相符合。
iPitchAndFamily是间距标志和属性标志。
pszFaceName是字体的名称。
调用这个函数的例子如下:
#001 //创建字体.
#002 //
#003 //蔡军生 2007/09/03 QQ:9073204 深圳
#004 //
#005 HFONT CCaiWinMsg::GetFont(void)
#006 {
#007  LOGFONT lf; //字符的结构 
#008 
#009  //获取当前系统的字体.
#010  GetObject(GetStockObject(SYSTEM_FONT), sizeof(LOGFONT),
#011         &lf);
#012 
#013  //设置字体的属性.
#014  lf.lfWeight = FW_BOLD;
#015  lf.lfItalic = true;          
#016  lf.lfHeight = 26;
#017 
#018  //设置为宋体.
#019  wsprintf(lf.lfFaceName,_T("%s"),_T("宋体"));
#020 
#021  //创建字体并返回
#022  return CreateFont(lf.lfHeight, lf.lfWidth,
#023         lf.lfEscapement, lf.lfOrientation, lf.lfWeight,
#024         lf.lfItalic, lf.lfUnderline, lf.lfStrikeOut, lf.lfCharSet,
#025         lf.lfOutPrecision, lf.lfClipPrecision, lf.lfQuality,
#026         lf.lfPitchAndFamily, lf.lfFaceName);
#027 
#028 }

Windows API一日一练(28)CreateFont函数相关推荐

  1. Windows API一日一练(28-29)CreateFont SetRect SelectObject DeleteObject函数-用各种不同的字体并进行文字绘制并注意释放

    主目录传送门 https://blog.csdn.net/zb774095236/article/details/108291755 本次学习的源码模板下载: 1.百度云:https://pan.ba ...

  2. Windows API一日一练(86)GetClipboardData函数

    前面介绍怎么样把数据放到剪贴板里面,那么又是怎么样从剪贴板里面获取数据出来呢?当然还是需要使用其它的API函数来获取剪贴板里的数据.获取剪贴板里的数据时,是不知道当前剪贴板里是否有数据的,也不知道剪贴 ...

  3. Windows API一日一练(41)FindWindowEx函数

    当你想控制一个现有的窗口程序时,就需要获取那个程序的窗口句柄.比如有一些黑客软件需要查找到窗口,然后修改窗口的标题.在外挂流行的今天,惊奇地发现它们也可以修改输入窗口的文字.这其中,就需要使用到Fin ...

  4. Windows API一日一练 13 TranslateMessage函数

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! Tran ...

  5. Windows API一日一练(13)TranslateMessage函数

    TranslateMessage是用来把虚拟键消息转换为字符消息.由于Windows对所有键盘编码都是采用虚拟键的定义,这样当按键按下时,并不得字符消息,需要键盘映射转换为字符的消息. Transla ...

  6. Windows API一日一练 41 FindWindowEx函数

    当你想控制一个现有的窗口程序时,就需要获取那个程序的窗口句柄.比如有一些黑客软件需要查找到窗口,然后修改窗口的标题.在外挂流行的今天,惊奇地发现它们也可以修改输入窗口的文字.这其中,就需要使用到 Fi ...

  7. Windows API一日一练(37)MoveWindow函数

    当你设计一个对话框的窗口时,就需要布局好所有按钮.文本显示框等等,由于每个按钮都是一个窗口,那么就需要移动这些窗口到合适的位置,这时就需要使用到MoveWindow函数.或者当你的界面需要动态地修改按 ...

  8. Windows API一日一练(53)CreateFile函数

    在软件的需求里,把有用的数据保存起来是非常重要的功能.比如每天的股票行情数据需要保存起来,以便生成K线图.比如游戏客户端的LOG需要保存起,以便客户端出错时可以把LOG发送回来分析它出错的原因.比如银 ...

  9. Windows API一日一练(一)第一个应用程序 使用应用程序句柄 使用命令行参数 MessageBox函数 RegisterClass和RegisterClassEx函数

    要跟计算机进行交互,就需要计算机显示信息给人看到,或者发出声音给人听到,然后人看到或听到相应的信息后,再输入其它信息给计算机,这样就可以让计算机进行数据处理,把结果显示给我们.现在就来编写一个最简单的 ...

最新文章

  1. Python进阶8——字典与散列表,字符串编解码
  2. Android中Intent的显示和隐式使用
  3. SQL_Server2008数据连接池
  4. Pandas高级教程之:plot画图详解
  5. exchange2013 owa-outlook界面语言
  6. mongdb2008puls4.0.3安装_Mathematica 10.3安装教程
  7. 面向人工智能“新基建”的知识图谱行业白皮书
  8. 天涯明月刀开发_《天涯明月刀手游》正式上线 4700万玩家期待的那个江湖来了...
  9. 开发者须知:哪些广告最让用户感到厌烦
  10. clion变量配置_cygwin安装和clion配置
  11. python图像手绘效果_python 3.6实现图像的手绘效果
  12. Improving and Simplifying Pattern Exploiting Training
  13. 对于rh v5系列服务器,华为rh2288v5服务器重定向问题引起pxe报错
  14. Linux下通过CCID协议与USB设备进行交互经验总结
  15. 基于CANoen协议实现DSP系统与上位机CAN的通讯
  16. C语言中的%p是什么意思?
  17. 蓝队-Windows操作系统
  18. 关于C语言和java变量赋值问题
  19. 韦东山ARM第一期作业(三)内存控制器和SDRAM
  20. 误删桌面上的 计算机 图片,桌面图标删除不了怎么办 桌面图片不见找回【图文】...

热门文章

  1. 华为平板5.x,Android7.0系统访问接口失败的问题。
  2. 2021年起重机械指挥考试资料及起重机械指挥模拟考试题
  3. SSE Instructions
  4. wadl2java cxf_java – CXF JAXRS |生成的wadl中不存在复杂响应类型
  5. P2658 汽车拉力比赛 - 普及+/提高-二分+搜索
  6. linux基本命令man,Linux---基础指令man/date/
  7. 【JS实战】添加元素(开头添加)
  8. <audio>播放音频Chrome浏览器禁止自动播放问题 play() failed because the user didn‘t interact with the document first
  9. PRNG伪随机数的破解方法
  10. Head First HTMLCSS