用TRUETYPE技术显示汉字

2016-02-19 15:30 5 1 收藏

今天图老师小编要向大家分享个用TRUETYPE技术显示汉字教程,过程简单易学,相信聪明的你一定能轻松get!

【 tulaoshi.com - 编程语言 】

  我知道有一个FREETYPE库可以把TRUETYPE字库渲染成点阵字。但是请注意TRUETYPE技术中包含了多项Apple公司的技术专利(主要是解释其HINT码),目前FREETYPE项目负责人已经收到Apple公司的通知,要求其申请Apple的专利许可,目前正在谈判之中。

  想要避开专利问题,只好不用HINT,但是这样一来显示效果极差。

  其实如果只是在Windows下(不管中文还是E文),只要先把中文转换成UNICODE串(MultiByteToWideChar?),再用TextOutW函数输出即可。

  不管是95还是NT都支持这些函数,只要已经装有相应的字体即可。没有必要去自己解释TRUETYPE。

  灰衣老僧: 是吗?专利问题有公司考虑! 

  问题是转换为Unicode在英文下输出我没成功! 

  以前是高手: 怎么能用CP_OEMCP呢? 

  当然要填936了。

  要显式地使用TextOutW(),不能用dc.TextOut(),因为程序还是按非UNICODE方式编译的。

  wchar_t wstr[500];

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  int n=MultiByteToWideChar(936, MB_PRECOMPOSED,

  str, -1, wstr, 500);

  TextOutW(pDC-m_hDC, x, y, wstr);

  系统必须装有936代码页。怎么装?把cp_936.nls(VC++中有的)COPY到windowssystem下,再在注册表的

  HKEY_LOCAL_MACHINESystemCurrentControlSetcontrolNlsCodepage中,加上936 = "cp_936.nls"

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  HKEY_LOCAL_MACHINE_SystemCurrentControlSetcontrolNlsLocale中,加上00000804 = "Chinese(PRC)"

  灰衣老僧: 太棒了!成功了!等你回国,老僧一定请你喝酒!

  Code:

  

BOOL bResult = m_Font.CreateFont(-16,0,0,0,400,0,0,0,134,3,2,1,50,"SimSun");
  char *pText = "Test汉字显示测试Test";
  wchar_t wBuffer[256];
  int nLength = MultiByteToWideChar(936, MB_PRECOMPOSED, pText, -1, wBuffer, 256);
  CDC *pDC = GetDC();
  CFont *pFontTemp = (CFont *)pDC-SelectObject(&m_Font);
  TextOutW(pDC-m_hDC, 80, 80, wBuffer, nLength - 1);
  pDC-SelectObject(pFontTemp);
   ReleaseDC(pDC);

来源:https://www.tulaoshi.com/n/20160219/1609798.html

延伸阅读
标签: ASP
  <% Set d = CreateObject("Scripting.Dictionary") d.add "a",-20319 d.add "ai",-20317 d.add "an",-20304 d.add "ang",-20295 d.add "ao",-20292 d.add "ba",-20283 d.add "bai",-20265 d.add "ban",-20257 d.add "bang",-20242 d.add "bao",-20230 d.add "bei",-20051 d.add "ben",-20036 d.add "beng",-20032 d.add "bi",-20026...
标签: 电脑入门
汉字笔画名称是小学生必须掌握的基础知识,许多学校都购买汉字笔画名称表张贴在低年级教室的墙上,让学生朝夕可见。其实,用WPS最新校园版应用中心集成的屏幕截图功能可以轻松提取汉字笔画,自己制作笔画名称表。 一、为什么要用屏幕截图功能提取汉字笔画? 我们平常都是使用插入符号功能来插入〡、く、⺄、、ノ、ㄅ、ㄋ、ㄣ、...
标签: Web开发
汉字简繁转换_把你需要转换的内容粘贴在下面的输入框,然后点击按钮即可 汉字简繁转换 把你需要转换的内容粘贴在下面的输入框,然后点击按钮即可 请把你需要转换的内容粘贴在这里!   [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
标签: Web开发
有时候,你的Blog可能需要这样的功能:   在自己Blog上聚合并显示朋友Blog的最新文章,这样方便自己及时了解朋友的消息,另外,也方便访问者找到和本Blog相关的blog和文章。 这个功能你可以叫它“Blog聚合”或者“Blog联播”,目前,实现这样功能的软件或服务都有限制:比如,Terac Sinfonia、Lilina、MXNA虽然功能都很强大,但是需要安...
标签: Web开发
你可以用XSL向XML文档中增加显示信息。         用XSL显示XML        XSL是XML首选的格式表语言。 XSL (可扩展的格式表语言) 比CSS要复杂得多。使用XSL 的一种方法是在它被浏览器显示之前,将XML转换成HTML,就象下面例子:       点击这里可...

经验教程

598

收藏

44
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部