前言
昨天刚刚写完了基本图形的制作,今天直接可以来看看,在easyx中使用文字
直接看代码吧
文字绘制
void drawTest()
{
printf("hello,EasyX");//指的是在控制台打印
//设置字体大小,样式
settextstyle(30, 0, "微软雅黑");//第一个参数为长度 第二个参数为宽度
//设置文字颜色
settextcolor(BROWN);
//设置背景模式
setbkmode(TRANSPARENT);
//绘制文字
outtextxy(100, 100, "hello,EasyX");//前2个参数指的是首字符的坐标
//把需要数字格式化,打印在图形界面上
int score = 150;
char a[50] = "";
sprintf(a, "score:%d", score);
outtextxy(getwidth() - 100, 0, a);
}
void centerText()
{
//绘制矩形
int rx = 30, ry = 380, rw = 200, rh = 60;
setfillcolor(RGB(230, 231, 232));
fillrectangle(rx, ry, rx + rw, ry + rh);
//绘制文字
settextcolor(RED);
//使文字在图形中居中,两参数的计算
int hspace = (rw - textwidth("center Text")) / 2;//当然,如果字符串经常被使用可以用字符串数组使用
int vspace = (rh - textheight("center Text")) / 2;//这样方便改字符串
outtextxy(rx + hspace, ry + vspace, "center Text");
//可以解释一下的 嗯!!!
//把问题可以转化为两矩形的对齐,由于字符串是从左上角开始打印的
//只要左上角对齐就行:我们用大矩形的长或宽减去小矩形的长或宽得到的是 当对齐时小矩形左上角的点
//离大矩形左上角的点在x或y轴上的距离的两倍
//最后,只要除2在分别加上大矩形一左上点的坐标,就得到文字左上坐标,也就是第一个坐标
}
int main()
{
//创造一个图形窗口,并设计窗口颜色
initgraph(640, 480, EX_SHOWCONSOLE);
setbkcolor(RGB(231, 114, 227));//设置背景颜色
cleardevice();//用设计的背景颜色填充窗口
drawTest();//设计文字
centerText();//使文本居中
getchar();
return 0;
}
看看运行结果
当然在使用时,必须要设置,否则会报错
看看如何解决
点击项目属性
改为多字节字符集
看图
这样问题就解决了
ok
祝大家学的开心