用VB实现电影字幕效果 2001年 37期 电影字幕我们大家每个人都见过,一行一行的文字从荧幕的底部慢慢地升上来,直到顶部才消失,很像那么回事。在电脑软件里面我们也是常常会见到这个特效,大家几乎人手一份的Winamp的关于(About…)窗口里就有这个效果。当然了,人家做得的确是好,不仅有这个,还有动画效果的背景,两者相映成趣,煞是好看!不过,今天咱们只学一点简单的,只做一个电影字幕的效果就行了。同时,大家还将看到一个我们自己做的进度条效果,不知你有没有兴趣试一下。   言归正传,打开你的VB,新建一个标准EXE工程,然后依次添加以下控件。   ◆在窗体Form1上添加一个PictureBox(图片框)控件Picture1,作为字幕效果表演的“场地”。   ◆在图片框Picture1上添加一个Label(文字标签)控件Label1,用于显示字幕文本。   ◆在窗体Form1上添加两个Shape(图形)控件Shape1和Shape2,并将Shape2放于显著位置。   ◆在窗体Form1上添加一个CommandButton(按钮)控件Command1。   ◆在窗体Form1上添加一个Timer(定时器)控件,用于实现字幕的滚动。   好,窗体控件添加完成,很简单吧。接下来让我们用菜单“视图/代码窗口”打开这个工程的代码窗口,输入下面的源代码:   Option Explicit   Dim Step As Integer '定义字幕滚动的速度,建议取值范围为15~300   Private Sub Command1_Click()   Command1.Enabled = False '暂时禁止按下按钮   Label1.Top = Picture1.Height '将字幕先隐藏起来   Timer1.Enabled = True '开启定时器   End Sub   Private Sub Form_Load   Step = 30 '*****只有这一行代码的赋值需要更改,也允许更改******   Rem 常量初始化   Label1.AutoSize = True   Label1.Left = 0   Label1.Top = Picture1.Height '本行代码如果不要,程序一启动即显示字幕文本   Label1.Caption = “用VB实现的电影字幕效果演示” + Chr(13)   Label1.Caption = Label1.Caption + “1 - 第一行文字” + Chr(13)   ……   (编注:由于代码重复,为了不无谓占用空间,因此省略掉了,读者朋友们将带下划线部分依次加1即可。)   Label1.Caption = Label1.Caption + “15 - 最后一行文字了。”   Shape1.BorderColor = &H80000002 '定义进度条的颜色,这里为蓝色   Shape1.FillColor = Shape1.BorderColor   Shape1.FillStyle = 0 '0 - Solid 实心矩形   Shape1.Height = Shape2.Height - 2   Shape1.Left = Shape2.Left   Shape1.Top = Shape2.Top + 1   Shape1.Width = 1   If Step < 0 Then '步长Step不能为负数!   Step = -Step   End If   If Step = 0 Then '步长Step也不能为0!   Step = 30   End If   Timer1.Interval = Step '定时器时间间隔   Timer1.Enabled = False '禁止定时器   Command1.Caption = “显示”   End Sub   Private Sub Timer1_Timer()   If (-Label1.Top) - Label1.Height >= -Step Then '进度条的取值不能>100%!   Shape1.Width = Shape2.Width '100%进度条   Label1.Top = -Label1.Height   Timer1.Enabled = False '禁止定时器   Command1.Enabled = True '允许按下按钮   Shape1.Width = 1 '0%进度条   Else   Label1.Top = Label1.Top - Step '字幕的滚动   '实现进度条效果   Shape1.Width = Shape2.Width * (1 - (Label1.Top + Label1.Height) /(Picture1.Height + Label1.Height))   End If   End Sub   所有这些都完成以后,按一下F5键执行一下程序试试,怎么样?咦!怎么窗口上什么都没有啊!呵呵,别着急,按一下窗口上的“显示”按钮再看一下,这下好了吧!是不是很为自己的成果而高兴呢!本程序在Windows 98SE,VB6下运行通过。