请问:如何实现窗体标题栏上的文字左右来回移动效果?思路是这样的:我要的不是跑马灯的那种文字不停向左边滚动效果,因为这个代码我早已经有了。而是能让文字左右不停地循环移动(注:滚动和移动是两个不同概念),当文字完全移出标题栏左边后,又能向右边移动,当完全移出标题栏右边后,又能向左边移动,不知明白我的意思没?当完全移出这边时,能向右边移动|←←←←←标题文字在这→→→→→|当完全移出右边时,又能向左边移动这是示意图原理,希望大家帮帮忙。

解决方案 »

  1.   

    设循环计算标题,或者用timer
      

  2.   

    用LABEL.MOVE I,T,W,H方法循环, 在用IF 判断是否已经出边了,出边了就上反方移动,OK?
      

  3.   

    用timer最简单,方法是me.caption="|←←←←←标题文字在这→→→→→|"
    方法是me.caption="|←←←←←标题文字在这→→→→→|"
      

  4.   

    移动速度慢可以用lable,快了会闪烁
      

  5.   

    在标题栏也用label?得用多少吨的代码才能把Label移到标题上去?然后再讨论Label闪烁问题....
      

  6.   

    大家出思路,我来出代码:)新建一工程,在默认窗体上加个定时器,Interval设个50吧~~然后粘贴这个到窗体代码区里:Option ExplicitPrivate Const fTitle As String = "我晃,我晃~~~"
    'Private Const fTitle As String = "test..test....."
    Private Const MaxSpace As Long = 30         '控制最大位移,根据文字与标题栏长度调整Private Sub Timer1_Timer()
        Static I As Long, J As Boolean
        Dim tmpStr As String, sLen As Long
        
        sLen = Len(fTitle)
        If J = True Then
            I = I + 1
        Else
            I = I - 1
        End If
        If I > MaxSpace + Len(fTitle) Then
            I = MaxSpace + sLen
            J = Not J
        End If
        If I < -sLen Then
            I = -sLen
            J = Not J
        End If
        If I >= 0 And I <= MaxSpace Then
            tmpStr = Space(I) & fTitle
        Else
            If I < 0 Then
                tmpStr = Mid(fTitle, Abs(I), sLen + I)
            Else
                tmpStr = Space(I) & Mid(fTitle, 1, sLen - Abs(I - MaxSpace))
            End If
        End If
        Me.Caption = tmpStr
    End Sub由于中文长度问题....这种效果在中文时会有点不爽.....里面也有一个英文的字符串常量,试一下就知道了.