用vb代码如何实现滚动字幕

用vb代码如何实现滚动字幕,第1张

示例:

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

Option Explicit

'

'字幕滚动程序

'使用控件:一个Label控件,一个Text控件,一个Timer控件,一个HScrollbar控件,2个Option控件(单选按钮)

'要滚动的字幕在Text1内输入

'

'

Private Sub Form_Load()

HScroll1.Max = 10

HScroll1.Min = 1

HScroll1.Value = 1

HScroll1.SmallChange = 1

HScroll1.LargeChange = 1

Option1.Value = True

Option1.Caption = "方式一"

Option2.Caption = "方式二"

Timer1.Enabled = True

Timer1.Interval = 100

Text1.Text = "利用时钟和滚动条设计一个字幕滚动程序,并且可以控制滚动的快慢。"

Label1.Caption = Text1.Text &Space(Label1.Width \ 96)

End Sub

Private Sub HScroll1_Change()

Timer1.Interval = HScroll1.Value * 100

End Sub

Private Sub Option1_Click()

Label1.Caption = Text1.Text &Space(Label1.Width \ 96)

End Sub

Private Sub Option2_Click()

Label1.Caption = Text1.Text

End Sub

Private Sub Timer1_Timer()

If Asc(Left(Label1.Caption, 1)) >0 Then

Label1.Caption = Mid(Label1.Caption, 3, Len(Label1.Caption) - 2) &Left(Label1.Caption, 2)

Else

Label1.Caption = Mid(Label1.Caption, 2, Len(Label1.Caption) - 1) &Left(Label1.Caption, 1)

End If

End Sub

加入一个命今按钮:command1.

加入一个文本框:text1.

加入一个时间控件:timer1.

加入一个横向的滚动条:hscroll1.把:min属性设为2,max属性设为100,smallchange设为1。

下面代码:

privatesubcommand1_click()

timer1.enabled=true

timer1.interval=10

endsub

privatesubform_load()

command1.caption="开始"

text1.backcolor=&h8000000f

text1.borderstyle=0

text1.text="测试区域"

timer1.enabled=false

endsub

privatesubhscroll1_change()

timer1.interval=10*hscroll1.value/10

endsub

privatesubhscroll1_scroll()

timer1.interval=10*hscroll1.value/10

endsub

privatesubtimer1_timer()

text1.left=text1.left-50

iftext1.left<0then

text1.left=form1.width

endif

endsub

技术含量不高,供参考!


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

原文地址: http://outofmemory.cn/bake/11830446.html

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

发表评论

登录后才能评论

评论列表(0条)

保存