您的位置:首页 > 其它

在不破坏背景的情况下实现动态文字

2013-07-21 09:30 148 查看
一步一个脚印,先布置背景,再现实动态文字输出,再解决输出时破坏背景的问题,再优化代码。

利用保护现场输出文本再恢复现场的方式实现以及代码的封装,值得在其他程序中尝试。

// 实现动态文字.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "easyx.h"
#include "conio.h"

//将现场保护的功能封装
//x,y表示输出文字的位置
//s表示输出的字符串,如果s为NULL,则恢复背景
void MoveAndSave(int x,int y,LPCTSTR s)
{
int w,h;
static IMAGE img;
if(s==NULL)//如果s指针为NULL时,恢复现场
putimage(x,y,&img);
else{
w=textwidth(s);
h=textheight(s);
getimage(&img,x,y,w,h);//保护现场
outtextxy(x,y,s);//输出文本
}

}
void main( )
{
int i;

//初始化绘图窗口
initgraph(640,480);

//设置输出文字时的背景模式
setbkmode(TRANSPARENT);

//设置文字颜色
setlinecolor(WHITE);

//定义并初始化字符串变量
TCHAR s[]=_T("动态文字");

//定义保存图像的变量IMAGE 变量来保护现场
IMAGE img;

//绘制背景
for(i=0;i<=640;i++)//竖线
{
setlinecolor(HSLtoRGB((float)i,1,0.25));//实现绘制彩虹效果
line(i,0,i,480);
}

for(i=0;i<600;i++){
MoveAndSave(i,100,s);//保护现场并输出文本
Sleep(20);
MoveAndSave(i,100,NULL);;//恢复现场
}

//关闭绘图窗口
getch();
closegraph();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: