CreateFont函数关于字符集与字体的两个参数

41.设置windows系统字体CreateFontCreateFontIndirect、GetStockObject 设置字体,建议在WM_CREATE消息处理中进行设置 设置系统字体有多种方法 方法一:CreateFont函数设置每一个参数 HFONT hFont = CreateFont(80,0,0,0,0,0,0,0,DEFAULT_CHARSET,0,0,0,0,TEXT("新宋体")); SelectObject(hdc,hFont); CreateFont函数的定义 INGDIAPI HFONT ... 阅读详情

HFONT CreateFont(

  int nHeight,               // height of font

  int nWidth,                // average character width

  int nEscapement,           // angle of escapement

  int nOrientation,          // base-line orientation angle

  int fnWeight,              // font weight

  DWORD fdwItalic,           // italic attribute option

  DWORD fdwUnderline,        // underline attribute option

  DWORD fdwStrikeOut,        // strikeout attribute option

  DWORD fdwCharSet,          // character set identifier

  DWORD fdwOutputPrecision,  // output precision

  DWORD fdwClipPrecision,    // clipping precision

  DWORD fdwQuality,          // output quality

  DWORD fdwPitchAndFamily,   // pitch and family

  LPCTSTR lpszFace           // typeface name

);

对于fdwCharSetlpszFace两个参数以及他们的关系,刚开始不是很理解,所以google了一些资料,对这个问题有了一点自己的认识。fdwCharSet参数用来设置字符集,lpszFace用来确定显示字体。字符集说白了就是文字的集合,拿BIG5字符集来说,该字符集收入一万多个繁体汉字,八百多个符号,普遍使用于台湾、香港等地区。

字符其实是由二进制数字来表示的,通过映射表映射到字符集中的某个字符。换句话说,同一个二进制数字,在不同的字符集里可能就代表不同的字符。字符集是文字的集合,但字符集中的字符可能需要编码之后才能应用。比如GB2312可以使用ISO 2022EUC等标准进行编码,编码之后可以进行网络传输或处理等等。而字体,就是字的形体,也就是字的几何形状。比如,宋体字看起来比较正式,楷体字看起来比较飘逸。

Msdn中关于CreateFont函数有很详细的介绍:fdwCharSet参数可以设置为:

       ANSI_CHARSET

BALTIC_CHARSET

CHINESEBIG5_CHARSET

DEFAULT_CHARSET

EASTEUROPE_CHARSET

GB2312_CHARSET

GREEK_CHARSET

HANGUL_CHARSET

MAC_CHARSET

OEM_CHARSET

RUSSIAN_CHARSET

SHIFTJIS_CHARSET

SYMBOL_CHARSET

TURKISH_CHARSET

VIETNAMESE_CHARSET

下面看几种字符集的简单介绍。

         GB2313字符集,收入汉字6763个,符号715个,总计7478个字符,这是大陆普遍使用的简体字符集。楷体-GB2313、仿宋-GB2313、华文行楷等市面上绝大多数字体支持显示这个字符集。

       BIG-5字符集,收入13060个繁体汉字,808个符号,总计13868个字符(包括了无简体与繁体之分的传统传承汉字),目前普遍使用于台湾、香港等地区。台湾教育部标准宋体楷体等港台字体都支持这个字符集的显示。

         GBK字符集,又称大字符集,包含以上两种字符集汉字。收入21003个汉字,882个符号,共计21885个字符。Windows 95/98简体中文版就带有这个GBK.txt文件。宋体、隶书、黑体、幼圆、华文中宋、华文细黑、华文楷体、标楷体(DFKai-SB)Arial Unicode MSMingLiUPMingLiU等字体支持显示这个字符集。

       从这几个字符集的介绍中,也可以看出一个问题,就是字体对字符集有一个支持问题。我自己是这么理解的,比如某个字符集只包含有英文字符,那么宋体或者楷体就不支持这个字符集,因为宋体或者楷体是针对我们汉字来说的。这就可以解释msdn中给程序员的一个警示:“If you specify a typeface name in the lpszFace parameter, make sure that the fdwCharSet value matches the character set of the typeface specified in lpszFace.

      

 

嵌入式GUI开发实战:emWin字体系统深度解析XBF外置字体应用 在嵌入式图形界面开发中,字体渲染是决定用户体验的关键技术。其核心原理在于将字符编码转换为屏幕上的像素点阵,并高效管理有限的存储内存资源。这项技术的价值在于,它直接影响了界面的美观度、多语言支持能力以及系统整体性能。典型的应用场景包括工业HMI、智能家居面板、医疗仪器等嵌入式设备的用户界面显示。为了在资源受限的环境中实现灵活高效的字体管理,emWin等专业图形库提供了完整的字体系统解决方案。其中,XBF外部位图字体机制通过“按需读取”的动态加载方式,完美平衡了字体多样性需求RAM资源紧张之间的矛盾。开发者 阅读详情

相关推荐

Windows程序设计——CreateFont详细解释

CFont * f; f = new CFont; f->CreateFont(10, // nHeight 0, // nWidth 0, // nEscapement 0, // nOrientation FW_BOLD, // nWeight FALSE, // bItalic ...

流楚丶格念的博客 4536

CreateFont函数介绍

HFONT CreateFont(int cHeight, //字体的逻辑高度 int cWidth, //字体的逻辑宽度int cEscapement, //指定移位向量相对X轴的偏转角度int cOrientation, //指定字符基线相对X轴的偏转角度int cWeight, //设置字体粗细程度DWORD bItalic, //是否启用斜体DWORD bUnderli

m0_37876745的博客 9315

CreateFont用法

中国人自古就有自右至左、从上到下书写汉字的习惯。而当我们在自己所编写的应用程序中使用输出函数输出的总是自左至右的横排文字。有没有可能在我们的应用程序中实现竖写汉字的效果呢?笔者偶然发现了一种利用VC实现竖写汉字效果的方法,现在就把它介绍给大家。 Windows系统内置了许多

MOKA 2805

【文档】字体 / Font

【文档】字体 / Font Document Infomation

Joephia的专栏 1667

CreateFont()

BOOL CreateFont(   int nHeight, //字体的高度   int nWidth, //字体的宽度   int nEscapement, //字体显示的角度   int nOrientation, //字体的角度   int nWeight, //字体的磅数   BYTE bItalic, //斜体字体   BYTE bUnderline, //带下划线的字体

Lydia的博客 1802

字体小谈:CreateFont和LOGFONT

字体小谈:CreateFont和LOGFONT<br />typedef struct tagLOGFONT { <br />LONG lfHeight; <br />LONG lfWidth; <br />LONG lfEscapement;<br />LONG lfOrientation; <br />LONG lfWeight; <br />BYTE lfItalic; <br />BYTE lfUnderline; <br />BYTE lfStrikeOut; <br />BYTE lfCharS

cpq37的专栏 1418

Windows CreateFont

CreateFont函数的作用是创建一种有特殊性的逻辑字体,此逻辑字体可以在后面被任何设备选择。 函数功能 函数原型: HFONT CreateFont( int nHeight, // logical height of font height int nWidth, // logical average character width int nEscapement, // angle of escapement int nOrientation, // ba

顺其自然~专栏 640

windows设置字体

CreateFont函数 作用:创建一个具有特定特性的逻辑字体,该字体创建后可被用作其他设备。 函数原型: HFONT CreateFont( int nHeight,     :字体高度. 三种情况 1、>0:字体的高度值(设备坐标);2、=0:字体采用缺省值. 3、 int nWidth,      :字体宽度. int nEscapement,   :文本行的倾斜度.

zwb8848happy的专栏 1193

CreateFont()函数的MSDN翻译

CreateFont()函数的MSDN翻译 函数功能:该函数创建一种有特殊性的逻辑字体,此逻辑字体可以在后面被任何设备选择。 函数原型: HFONT CreateFont(int nHeight,                     int nWidth,                   int nEscapement,                 

remington2的专栏 626

MFC修改控件字体大小

主要用到CreateFont函数声明如下: INGDIAPI HFONT WINAPI CreateFontA( _In_ int cHeight, //字体高度:0为默认高度,非0绝对值为字体高度 _In_ int cWidth, //字体宽度 ...

琅嬛福地 1515

Cfont字体整理

BOOL CreateFont( //指定字体高度(逻辑单位)。有三种取值: //>0,字体映射器将高度值转换为设备单位,并可用字体的字符元高度进行匹配; //=0,字体映射器使用默认的高度值; //<0,字体映射器将高度值转换为设备单位,用其绝对值可用字体的字符高度进行匹配。nHeight转换后的绝对值不应超过16384个设备单位。 int nHeight, //指定字体中字符的平均宽度(逻

u010183589的博客 2777

Windows API一日一练(28)CreateFont函数

 文字的出现历史可以追溯到甲骨文的使用,直到今天使用的宋体文字。在软件开发里,经常遇到是跨国语言的使用,由于世界在变平,全球在变小,交通运输非常发达,由我所在的深圳,向东坐飞机12个小时就可以到达伦敦,向西坐飞机12小时就可以到达美国,可算得上朝发夕至。比如像炒外汇的人,一天可以不用睡觉都在工作着,比如早上炒东京的汇市,下午就可以炒伦敦的,晚上就可以炒纽约的了。软件的开发,也在全球化,比如昨晚在美

264

杂粹

hFont:=CreateFont(-12,0,0,0,0,0,0,0,GB2312_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH or FF_DONTCARE,宋体); //改变字体 SendMessage(hButtonStart,WM_SETFONT,hFont,0);

abaolife的专栏 770

Windows CreateFont:创建自己的字体

前面无论是使用文本输出函数还是 static 控件,字体都是默认的,比较丑陋,我们完全可以自己创建更加炫酷的字体。 创建字体使用 CreateFont 函数,它的原型是: HFONT CreateFont( int cHeight, //字体的逻辑高度 int cWidth, //字体的逻辑宽度 int cEscapement, //指定移位向量相对X轴的偏

芝麻软件工作室的专栏 1万+

创建字体CreateFont,CreateFontIndirect

跟画刷,区域一样,字体是GDI其中的一个对象,可以使用SelectObject来添加到HDC环境中。 创建字体有两种方法 1CreateFont BOOL CreateFont( int nHeight, //字体的高度

hellokazhang的博客 1万+

11. Windows CreateFont: 创建自己的字体

前面无论是使用文本输出函数还是 static 控件,字体都是默认的,比较丑陋,我们完全可以自己创建更加炫酷的字体。 创建字体使用 CreateFont 函数,它的原型是: HFONT CreateFont( int cHeight, //字体的逻辑高度 int cWidth, //字体的逻辑宽度 int cEscapement, //指定移位向量相对X轴的偏转角度 ...

y果子 3778
上一篇: MFC程序中ASSERT与VERIFY两个宏的区别
下一篇: (VC8)配置boost库使用环境
GARY
博客等级 码龄17年 412粉丝 135原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值