VC++6.0如何实现滚动字幕?急用,急用
就是在VC++6.0的运行的DOS界面,出现一行滚动文字,方向从左到右,或从右到左等等,这行文字我写成什么内容都成,就和网站的流动广告信息一样,我学的是C语言,只不过用的...
就是在VC++6.0的运行的DOS界面,出现一行滚动文字,方向从左到右,或从右到左等等,这行文字我写成什么内容都成,就和网站的流动广告信息一样,我学的是C语言,只不过用的工具是VC++6.0,所以大家告诉我时要用C语言写,就扩展名是.cpp的那,不过要用VC++6.0编译,运行,最后程序要加中文注释,例子越简单越好,主要能实现滚动字幕的效果就行,因为我是个初学者,太深了我看不懂,我真的有急用,希望大家帮忙,我将万分感谢。
展开
1个回答
展开全部
本来楼主这个要求要是在Win32 Application里面的话很容易做,可是楼主偏偏要求用DOS界面,就是Win32 console application吧,下面写了一个能实现楼主的要求,可我实在想不出来楼主要这个干什么...
#include <stdio.h>
#include <time.h>
#include <conio.h>
#include <string.h>
#define TIME_INTERVAL (CLOCKS_PER_SEC / 50)
int main(int argc, char* argv[])
{
int i, j;
long c;
char str[80] = "Hello world!";
int l = strlen(str);
char sleft[80];
char sright[80];
int scrwidth = 79;
while (1)
{
for (i = 0; i <= scrwidth; i++)
{
if (i <= scrwidth - l)
{
c = clock();
for (j = 0; j < i; j++)
{
printf(" ");
}
printf("%s\r", str);
while (clock() - c <= TIME_INTERVAL)
;
} else
{
c = clock();
strcpy(sleft, str);
strcpy(sright, str + l - (i - (scrwidth - l)));
*(sleft + l - (i - (scrwidth - l))) = NULL;
for (j = 0; j < i; j++)
{
printf(" ");
}
printf("%s\r", sleft);
printf("%s\r", sright);
while (clock() - c <= TIME_INTERVAL)
;
}
}
}
return 0;
}
#include <stdio.h>
#include <time.h>
#include <conio.h>
#include <string.h>
#define TIME_INTERVAL (CLOCKS_PER_SEC / 50)
int main(int argc, char* argv[])
{
int i, j;
long c;
char str[80] = "Hello world!";
int l = strlen(str);
char sleft[80];
char sright[80];
int scrwidth = 79;
while (1)
{
for (i = 0; i <= scrwidth; i++)
{
if (i <= scrwidth - l)
{
c = clock();
for (j = 0; j < i; j++)
{
printf(" ");
}
printf("%s\r", str);
while (clock() - c <= TIME_INTERVAL)
;
} else
{
c = clock();
strcpy(sleft, str);
strcpy(sright, str + l - (i - (scrwidth - l)));
*(sleft + l - (i - (scrwidth - l))) = NULL;
for (j = 0; j < i; j++)
{
printf(" ");
}
printf("%s\r", sleft);
printf("%s\r", sright);
while (clock() - c <= TIME_INTERVAL)
;
}
}
}
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询