Vb滚动字幕程序代码 急

Vb滚动字幕程序代码 急,第1张

1、在窗体上画上计时器控件timer1

label控件label1.

2、设置timer1的enable属性为false,interval属性为500,即500毫秒执行一次

3、设置label1的autosize属性为true,表示label1根据caption属性的内容自动调整大小。

4、在代码窗口里,写出以下代码:

Dim

ChuShiWeiZhi

As

Integer'表示label1的初始位置

Private

Sub

Command1_Click()

Timer1.Enabled

=

True'使计时控件工作

End

Sub

Private

Sub

Form_Load()'窗体加载时,记录label1的位置,并初始化label1的内容,注意vbCrLf表示换行

ChuShiWeiZhi

=

Label1.Top

Label1.Caption

=

"请"

&

vbCrLf

&

"采"

&

vbCrLf

&

"纳"

&

vbCrLf

&

"我"

&

vbCrLf

&

"的"

&

vbCrLf

&

"答

"

&

vbCrLf

&

"案"

&

vbCrLf

&

"已"

&

vbCrLf

&

"通"

&

vbCrLf

&

"过"

&

vbCrLf

&

"测"

&

vbCrLf

&

"试"

End

Sub

Private

Sub

Timer1_Timer()

Label1.Top

=

Label1.Top

-

200'没执行一次使label1的top减少200缇,200可以修改为任意你要的值

If

Label1.Top

+

Label1.Height

<

0

Then'当label1完全移出窗体时,令它top再次变为初始的值,实现循环

Label1.Top

=

ChuShiWeiZhi

End

If

End

Sub

通过测试,请采纳答案,我是vb编程团队成员,很高兴为您服务!

实现滚动字幕:

一、单行滚动,写一个函数,每次调用让全局或静态字符数组向一个方向移位(比如左移,从最右边一个非0字符开始遍历,依次覆盖左边的一个字符,最左边的字符被第二个字符覆盖,最右边一个非0位变移出的那个字符)。记得保留结束符号0。

二、之后循环打印字符数组。每次使用system("cls")清空控制台显示。

三、多行滚动,同理,只不过把字符移动覆盖,改成字符串移动覆盖。(移动方向的后一行覆盖前一行,把移动方向第一行内容赋值给最后一行)。

//ps:由于肉眼观察,移动需要间隔,用Sleep函数,但该函数会让线程停止,如滚屏间隔期间,还希望其它部分正常运行,需要写线程。

下面是参考代码:

#include<stdio.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=0i<len-1i++)

          str[i]=str[i+1]

      str[len-1]=c

  }

  if(!f)

  {

      c=str[len-1]

      for(i=len-1i>0i--)

          str[i]=str[i-1]

      str[0]=c

  }

}

示例:

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'//得到截取的长度大小

Ifsize<4Then'//当不足5个长度单位时

temp=Mid(content,pos,size+1)

temp=temp&Mid(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.Left<0ThenDire="向右"

ElseIfDire="向右"Then

Label1.Left=Label1.Left+10

IfLabel1.Left+Label1.Width>Me.ScaleWidthThenDire="向左"

EndIf

EndSub


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8039875.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-12
下一篇 2023-04-12

发表评论

登录后才能评论

评论列表(0条)

保存