用VB实现电影字幕效果

Author: Date: 2001年 37期

?牐牭缬白帜晃颐谴蠹颐扛鋈硕技恍幸恍械奈淖执佑坏牡撞柯厣侠矗钡蕉ゲ坎畔В芟衲敲椿厥隆T诘缒匀砑锩嫖颐且彩浅3;峒秸飧鎏匦В蠹壹负跞耸忠环莸腤inamp的关于(About…)窗口里就有这个效果。当然了,人家做得的确是好,不仅有这个,还有动画效果的背景,两者相映成趣,煞是好看!不过,今天咱们只学一点简单的,只做一个电影字幕的效果就行了。同时,大家还将看到一个我们自己做的进度条效果,不知你有没有兴趣试一下。
  ?牐犙怨檎蚩愕腣B,新建一个标准EXE工程,然后依次添加以下控件。
  ?牐牎粼诖疤錐orm1上添加一个PictureBox(图片框)控件Picture1,作为字幕效果表演的“场地”。
  ?牐牎粼谕计騊icture1上添加一个Label(文字标签)控件Label1,用于显示字幕文本。
  ?牐牎粼诖疤錐orm1上添加两个Shape(图形)控件Shape1和Shape2,并将Shape2放于显著位置。
  ?牐牎粼诖疤錐orm1上添加一个CommandButton(按钮)控件Command1。
  ?牐牎粼诖疤錐orm1上添加一个Timer(定时器)控件,用于实现字幕的滚动。
  ?牐牶茫疤蹇丶砑油瓿桑芗虻グ伞=酉吕慈梦颐怯貌说ァ笆油?/代码窗口”打开这个工程的代码窗口,输入下面的源代码:
  ?牐燨ption Explicit
  ?牐燚im Step As Integer '定义字幕滚动的速度,建议取值范围为15~300
  ?牐燩rivate Sub Command1_Click()
  ?牐燙ommand1.Enabled = False '暂时禁止按下按钮
  ?牐燣abel1.Top = Picture1.Height '将字幕先隐藏起来
  ?牐燭imer1.Enabled = True '开启定时器
  ?牐燛nd Sub
  ?牐燩rivate Sub Form_Load?煟?
  ?牐燬tep = 30 '*****只有这一行代码的赋值需要更改,也允许更改******
  ?牐燫em 常量初始化
  ?牐燣abel1.AutoSize = True
  ?牐燣abel1.Left = 0
  ?牐燣abel1.Top = Picture1.Height '本行代码如果不要,程序一启动即显示字幕文本
  ?牐燣abel1.Caption = “用VB实现的电影字幕效果演示” + Chr(13)
  ?牐燣abel1.Caption = Label1.Caption + “1 - 第一行文字” + Chr(13)
  ?牐牎?
  ?牐牐ū嘧ⅲ河捎诖胫馗矗瞬晃尬秸加每占洌虼耸÷缘袅耍琳吲笥衙墙禄卟糠忠来渭?1即可。)
  ?牐燣abel1.Caption = Label1.Caption + “15 - 最后一行文字了。”
  ?牐燬hape1.BorderColor = &H80000002 '定义进度条的颜色,这里为蓝色
  ?牐燬hape1.FillColor = Shape1.BorderColor
  ?牐燬hape1.FillStyle = 0 '0 - Solid 实心矩形
  ?牐燬hape1.Height = Shape2.Height - 2
  ?牐燬hape1.Left = Shape2.Left
  ?牐燬hape1.Top = Shape2.Top + 1
  ?牐燬hape1.Width = 1
  ?牐營f Step < 0 Then '步长Step不能为负数!
  ?牐燬tep = -Step
  ?牐燛nd If
  ?牐營f Step = 0 Then '步长Step也不能为0!
  ?牐燬tep = 30
  ?牐燛nd If
  ?牐燭imer1.Interval = Step  '定时器时间间隔
  ?牐燭imer1.Enabled = False '禁止定时器
  ?牐燙ommand1.Caption = “显示”
  ?牐燛nd Sub
  ?牐燩rivate Sub Timer1_Timer()
  ?牐營f (-Label1.Top) - Label1.Height >= -Step Then '进度条的取值不能>100%!
  ?牐燬hape1.Width = Shape2.Width '100%进度条
  ?牐燣abel1.Top = -Label1.Height
  ?牐燭imer1.Enabled = False '禁止定时器
  ?牐燙ommand1.Enabled = True '允许按下按钮
  ?牐燬hape1.Width = 1 '0%进度条
  ?牐燛lse
  ?牐燣abel1.Top = Label1.Top - Step '字幕的滚动
  ?牐牐?实现进度条效果
  ?牐燬hape1.Width = Shape2.Width * (1 - (Label1.Top + Label1.Height) /(Picture1.Height + Label1.Height))
  ?牐燛nd If
  ?牐燛nd Sub
  ?牐犓姓庑┒纪瓿梢院螅匆幌翭5键执行一下程序试试,怎么样?咦!怎么窗口上什么都没有啊!呵呵,别着急,按一下窗口上的“显示”按钮再看一下,这下好了吧!是不是很为自己的成果而高兴呢!本程序在Windows 98SE,VB6下运行通过。