本文目录一览:
如何用C语言制作一个可以在开始屏幕上滚动的字幕?
实现滚动字幕:
一、单行滚动,写一个函数,每次调用让全局或静态字符数组向一个方向移位(比如左移,从最右边一个非0字符开始遍历,依次覆盖左边的一个字符,最左边的字符被第二个字符覆盖,最右边一个非0位变移出的那个字符)。记得保留结束符号0。
二、之后循环打印字符数组。每次使用system("cls");清空控制台显示。
三、多行滚动,同理,只不过把字符移动覆盖,改成字符串移动覆盖。(移动方向的后一行覆盖前一行,把移动方向第一行内容赋值给最后一行)。
//ps:由于肉眼观察,移动需要间隔,用Sleep函数,但该函数会让线程停止,如滚屏间隔期间,还希望其它部分正常运行,需要写线程。
下面是参考代码:
#includestdio.h
#include windows.h
void sScreen(char str[],int len,int f);//len:内容长度,不包含结束符号。f=1向左移动。f=0向右移动;
int main()
{
char str[]="I LOVE YOU";
while(1)
{
printf("%s\n",str);
sScreen(str,10,0);
Sleep(1000);
system("cls");
}
return 0;
}
void sScreen(char str[],int len,int f)
{
int i;
char c;
if(f)
{
c=str[0];
for(i=0;ilen-1;i++)
str[i]=str[i+1];
str[len-1]=c;
}
if(!f)
{
c=str[len-1];
for(i=len-1;i0;i--)
str[i]=str[i-1];
str[0]=c;
}
}
用vb代码如何实现滚动字幕
示例:
PrivateSubForm_Load()
'//预先设定要显示的内容
content="滚动字幕示例控制文本的循环滚动"
'//获取内容长度
length=Len(content)
'//label1控件,手动调整
'//接着需要选择字体大小
SetMe.Font=Label1.Font'//方便借用Form.TextHeight方法
Dimfont_heightAsLong,font_widthAsLong,sizeAsLong
size=Label1.Font.size
font_height=Me.TextHeight("循环滚动")
font_width=Me.TextWidth("循环滚动")
Whilefont_height=Label1.HeightAndfont_width=Label1.Width
size=size+1
Label1.Font.size=size
font_height=Me.TextHeight("循环滚动")
font_width=Me.TextWidth("循环滚动")
Wend
Label1.Font.size=size-1'//选择最合适的字体大小
pos=1'//从第一个字符开始读取
EndSub
PrivateSubCommand1_Click()
Timer1.Interval=1000'1000毫秒执行一次
EndSub
PrivateSubTimer1_Timer()
DimsizeAsLong,tempAsString
'//每次显示5个长度单位的内容
size=length-pos'//得到截取的长度大小
Ifsize4Then'//当不足5个长度单位时
temp=Mid(content,pos,size+1)
temp=tempMid(content,1,4-size)
pos=5-size
Else
temp=Mid(content,pos,5)
pos=pos+5
EndIf
Label1.Caption=temp'//把截取的文本内容显示出来
EndSub
扩展资料
VB设计自动滚动字幕窗体
DimDireAsString
'窗体Load事件
PrivateSubForm_Load()
Dire="向左"
EndSub
'定时器事件
PrivateSubTimer1_Timer()
DimNewColorAsLong
Randomize
NewColor=RGB(Rnd()*256,Rnd()*256,Rnd()*256)
Label1.ForeColor=NewColor
IfDire="向左"Then
Label1.Left=Label1.Left-10
IfLabel1.Left0ThenDire="向右"
ElseIfDire="向右"Then
Label1.Left=Label1.Left+10
IfLabel1.Left+Label1.WidthMe.ScaleWidthThenDire="向左"
EndIf
EndSub
求滚动字幕代码
下面则用javascript实现的非常实用的滚动,你可以修改滚动的方向.
DIV id=scrollbody
DIV id=scrolltext
your contnet
/di
/di
SCRIPT type=text/javascript
!--
try{
var marqueesHeight = 150;
var stopscroll = false;
var scrollElem = document.getElementById("scrollbody");
with(scrollElem){
style.width = 275;
style.height = marqueesHeight;
style.overflow = 'hidden';
noWrap = true;
}
scrollElem.onmouseover = new Function('stopscroll = true');
scrollElem.onmouseout = new Function('stopscroll = false');
var preTop = 0;
var currentTop = 0;
var stoptime = 0;
var leftElem = document.getElementById("scrolltext");
scrollElem.appendChild(leftElem.cloneNode(true));
init_srolltext();
}catch(e){}
function init_srolltext(){
scrollElem.scrollTop = 0;
setInterval('scrollUp()', 15);
}
function scrollUp(){
if(stopscroll) return;
currentTop += 1;
if(currentTop == 30){
stoptime += 1;
currentTop -= 1;
if(stoptime == 180){
currentTop = 0;
stoptime = 0;
}
}else{
preTop = scrollElem.scrollTop;
scrollElem.scrollTop += 1;
if(preTop == scrollElem.scrollTop){
scrollElem.scrollTop = 0;
scrollElem.scrollTop += 1;
}
}
}
//--
/SCRIPT
!-- phpstat.sports.cn --
SCRIPT language=JavaScript type=text/javascript
var _PCSWebSite="10000008";
var _PCSText="num1";
/SCRIPT