注册 登录
编程论坛 VB6论坛

求大神帮解决(滚动字幕)

wangsiraaa 发布于 2017-11-28 10:17, 2209 次点击
参照程序效果图进行界面设计;将“首届世界互联网大会”字幕从左到右进行循环滚动。要求:(1)程序运行的初始状态是字幕“首届世界互联网大会”从左到右水平循环滚动,并在滚动过程中,字幕颜色红、蓝交替变换显示;(2)点击“演示”按钮,重回程序初始状态;(3)点击“暂停”按钮,字幕暂停,按钮名称变为“开始”;点击“开始”按钮,字幕继续滚动,按钮名称变为“暂停”;(4)点击“退出”按钮,弹出提示框,点击确认退出程序。
只有本站会员才能查看附件,请 登录
5 回复
#2
xyxcc1772017-11-28 17:53
放入一个时间控件,然后让文本标签的left逐渐增大就可以实现.
#3
wangsiraaa2017-11-29 08:01
回复 2楼 xyxcc177
有2个标签的,第一个标签移到最右边时,另外一个标签要从左边开始进入。也就是要求右边移出去的字要在左边显示出来。我不知道这么表达您能理解不。
#4
风吹过b2017-11-29 08:33
以下是引用wangsiraaa在2017-11-29 08:01:19的发言:

有2个标签的,第一个标签移到最右边时,另外一个标签要从左边开始进入。也就是要求右边移出去的字要在左边显示出来。我不知道这么表达您能理解不。


只要1个标签,到了最右边时,就移到最左边还没出现时。

大概就是这样写的,你要转换成具体的对象和属性
if 标签.left >=窗体.宽度 then 标签.left= -标签.宽度

突然发现,你是直接显示在窗体上的。修改编辑一下。

#5
wds12017-11-29 20:01
只有本站会员才能查看附件,请 登录

你试试,源代码如下:
Public bz

Private Sub Form_Load()
   Form_Resize
  Command2.Caption = "暂停"
  bz = 0
  Timer1.Interval = 500
End Sub

Private Sub Form_Resize()
  width1 = Form1.Width
  hight1 = Form1.Height
  Command1.Top = hight1 - 900
  Command2.Top = hight1 - 900
  Command3.Top = hight1 - 900
  Command1.Left = 0
  Command2.Left = Int(width1 / 3)
  Command3.Left = Int(width1 / 3) * 2
  Command1.Width = Int(width1 / 3)
  Command2.Width = Int(width1 / 3)
  Command3.Width = Int(width1 / 3)
  Label1.Top = hight1 / 2 - 500
  Label1.Left = width1 / 2 - 2000
End Sub

Private Sub Command1_Click()
  Form_Resize
  Timer1.Interval = 500
End Sub

Private Sub Command2_Click()
 If Command2.Caption = "暂停" Then
   Timer1.Interval = 0
   Command2.Caption = "开始"
  Else
   Timer1.Interval = 500
   Command2.Caption = "暂停"
  End If
End Sub
Private Sub Command3_Click()
  MsgBox "按确定退出", 0, ""
  End
End Sub

Private Sub Timer1_Timer()
  Select Case bz
  Case 0:
    Label1.ForeColor = vbRed
    If Label1.Left + Label1.Width > Form1.Width Then
      Label1.Left = 0
    Else
      Label1.Left = Label1.Left + 300
    End If
    bz = 1
  Case 1:
    Label1.ForeColor = vbBlue
    If Label1.Left + Label1.Width > Form1.Width Then
      Label1.Left = 0
    Else
      Label1.Left = Label1.Left + 300
    End If
    bz = 0
  End Select
End Sub



[此贴子已经被作者于2017-11-29 20:06编辑过]

#6
wangsiraaa2017-12-15 07:42
12


[此贴子已经被作者于2017-12-15 07:43编辑过]

1