慢羊羊的空间

无为,无我,无欲,居下,清虚,自然

使用程序代码输出常见的字体图标(标志图片) 铜牌收录

前言

程序中经常会使用一些常规的标志(图标、Logo)图片,例如,音量开关、各种方向箭头、扑克牌花色、邮件、电话、磁盘、笑脸/哭脸、五星等等。通常做法是,制作好图片,然后在特定的位置将图片显示出来。本文讲述如何通过输出文字的形式将这些常规的标志图片进行输出。

这种以文字方式表示的表示图片,一般称作:字体图标。

使用方法

简单来说:Windows 内置了许多字体图标的字库,只需要设置为相应字体,然后再输出相应字符即可。不过多讲解,看代码吧,以下代码会画出一个电话机:

#include <graphics.h>
#include <conio.h>

int main()
{
	initgraph(640, 480);

	settextstyle(60, 0, L"Wingdings");
	wchar_t c = 0x28;		// 0x28 是电话机在 Wingdings 字体中的对应编码
	outtextxy(0, 0, c);

	_getch();
	closegraph();

	return 0;
}

简单吧~

常见问题

相信大多数同学都明白怎么做了。还有疑惑的可以看看下面罗列的常见问题:

Q:在哪里可以找到完整的字体图标列表?

A:在 Windows 下打开附件里面的“字符映射表”,选择字体,就会显示出来该字体所有支持的字符。选中相应字符,底部就会显示出来该字符的编码。例如前面例子里面的电话图标,在这里:

Q:哪些字体含有这样的图标?

A:Windows 下内置的许多字体都含有类似的图标。例如 Webdings、Wingdings、Wingdings 2、Wingdings 3 等。另外,一些常规字体里面也有这样的图标,比如 Arial 字体里面除了常规的字符外,还有许多的特殊符号,包括扑克牌花色等。需要注意,通常这些图标是 Unicode 字符,需要 wchar_t 类型的字符才可以正确保存。

Q:使用字体图标的兼容性怎么样?其它系统可以识别吗?

A:只要系统里面有这个字体,就可以显示出来对应的字符图标。例如前面列举的 Arial、Webdings、Wingdings 字体,从 Windows XP 时代就已经内置在系统里面了,所以兼容性问题大可不必担心。

Q:我可以直接将特殊字符粘贴到代码里面吗?

A:除非你的 IDE 的字体设置为指定字体,否则你的字符图标无法显示。所以,为了避免你的代码让他人困扰,不要在代码里面直接键入特殊的字符图标,应该使用对应的字符编码代替。

--

如果还有不明白的地方,可以到 EasyX 官方社区提问,我会持续关注。

评论 (3) -

  • 用其他字体时,对应编码输出来不对,输出 不符
    • 应该是你代码有问题。你可以参考一下别人是怎么做的。

添加评论