编程论坛
注册
登录
编程论坛
→
VB6论坛
实现滚动字幕
ddqx1991
发布于 2016-10-05 18:08, 6192 次点击
我用VB自己做了一个滚动字幕程序(如图,是试运行状态),我可以做到的是让它在Label控件中实现滚动,但是不知道该怎么实现像电视新闻那样用另外的窗体实现字幕滚动显示,求大神告诉怎么写这样的代码,还需要什么控件?因为我是新手,没学过编程,这个程序是我最近自学搞的。
只有本站会员才能查看附件,请
登录
6 回复
#2
Artless
2016-10-06 00:25
你可以做到的是让它在Label控件中实现滚动
比如Form1的Label1=**那就
Form2.Label1=**
#3
Panda2016
2016-10-06 00:43
程序代码:
Option
Explicit
Dim
content
As
String
Dim
length
As
Long
Dim
pos
As
Long
Private
Sub
Form_Load()
'
//预先设定要显示的内容
content =
"
静夜思 作者:李白 床前明月光,疑是地上霜。举头望明月,低头思故乡。
"
'
//获取内容长度
length =
Len
(content)
'
//label1控件,手动调整,如图所示
'
//接着需要选择字体大小
Set
Me
.Font = Label1.Font
'
//方便借用Form.TextHeight方法
Dim
font_height
As
Long
, font_width
As
Long
, size
As
Long
size = Label1.Font.size
font_height =
Me
.TextHeight(
"
床前明月光
"
)
font_width =
Me
.TextWidth(
"
床前明月光
"
)
While
font_height <= Label1.Height
And
font_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
'
//从第一个字符开始读取
End Sub
Private
Sub
Command1_Click()
Timer1.Interval =
1000
'
1000毫秒执行一次
End Sub
Private
Sub
Timer1_Timer()
Dim
size
As
Long
, temp
As
String
'
//每次显示5个长度单位的内容
size = length - pos
'
//得到截取的长度大小
If
size <
4
Then
'
//当不足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
End
If
Label1.Caption = temp
'
//把截取的文本内容显示出来
End Sub
我的也是笨方法,可参考一下。
只有本站会员才能查看附件,请
登录
#4
xiangyue0510
2016-10-06 10:57
Timer 修改控件位置。楼上的就是例子
#5
ddqx1991
2016-10-08 17:42
回复 3楼 Panda2016
如果我没看错的话,你是直接在From1窗口中实现的滚动,而我想做的是,滚动字幕是一个窗口,后台设置也是一个窗口,那我是不是应该再建一个子窗口?比如MDIFrom1窗口?还是直接在From1窗口中?
#6
ZHRXJR
2016-10-11 14:17
回复 楼主 ddqx1991
“但是不知道该怎么实现像电视新闻那样用另外的窗体实现字幕滚动显示,求大神告诉怎么写这样的代码,还需要什么控件?”
你的这个程序如果需要在另外窗体实现字幕滚动,你可以做二个窗体,第一个窗体是设置字幕的一些参数,在第二个窗体实现滚动,将第一个窗体设置的数据进行存储,第二个窗体调用存储数据即可。
存储数据的方法很多,例如文本文件、数据库、或添加一个Module1.bas模块,在模块中定义几个模块级变量即可,当然还有其他的方法存储数据,不再一一介绍了。
我认为你的这个使用模块是最简单易行的。
#7
xzlxzlxzl
2016-10-12 09:29
如果是制作类似于大屏幕滚动字幕的,将设置编辑字幕的窗口和显示窗口分开(甚至在一台电脑上编辑,另一台电脑上显示),应该难度不大。如果是做视频显示字幕,则难度大,需要懂DX.
1