22.文字

  • 学习人数 15K+
  • 适合有C语言基础人群学习
avatar
林耿亮

你好编程主讲老师

之前的章节中,我们在窗体上绘制了各式各样的图形。这一节中,我们将尝试在窗体上写一些文字。

创建一个宽度为800, 高度为600的窗体。设置背景颜色为白色,并用背景颜色清空整个窗体。之后,再将背景颜色设置为浅绿色。

initgraph(800, 600);

//  使用白色清空窗体
setbkcolor(WHITE);
cleardevice();

//  设置背景颜色为浅绿色
setbkcolor(RGB(164, 225, 202));

1. 绘制文字

现在,我们打算从(0, 0)处开始写一行黑色的字:HelloWorld,你好,世界。

首先,通过settextcolor函数,将字体颜色设置为黑色。默认的字体颜色为白色,如果将白色的字体显示在白色的窗体上,我们将看不到任何结果。

void settextcolor(COLORREF color);
参数 类型 意义
color COLORREF 要设置的文字颜色

返回值 无

//  设置字体颜色为黑色
settextcolor(BLACK);

下面,让我们认识另外一个函数outtextxy。它用于从坐标(x,y)开始,绘制一行文字。

void outtextxy(
    int x,
    int y,
    LPCTSTR str
);
参数 类型 意义
x int 首字符的x轴的坐标
y int 首字符的y轴的坐标
str LPCTSTR 字符串首元素指针

第三个参数的类型为LPCTSTR,它是一个宏,用于适配多字节字符宽字符。该宏根据不同的条件,代表着不同的字符指针。

  1. 多字节字符字符模式下,它是const char *
  2. 宽字符模式下,它是const wchar_t *

我们讨论的重点并不是字符模式,后面的讨论中,都将仅讨论多字节字符

在【工程属性】选项卡中,将【配置属性】-【高级】-【字符集】调整为未设置即可。

字符集

//  从(0, 0)处开始写一行字:HelloWorld,你好,世界。
const char* pText = "HelloWorld,你好,世界。";
outtextxy(0, 0, pText);

绘制一行字

观察窗体可以看到,从(0, 0)处开始写了一行字:HelloWorld,你好,世界。而字体的背景是刚刚设置的浅绿色。