-

解决方案 »

  1.   

    自己遍程序,比如用<<<<<<<<<<<这样的就可以了,每次加个<
      

  2.   

    用VB实现状态栏上的进度条
    ------------------------------------------以下为程序内容Option Explicit
    Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Public Declare Function SetParent Lib "user32" (ByVal hWndChild As Long, ByVal hWndNewParent As Long) As LongPublic Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
    End TypePublic Const SB_GETRECT As Long = &H40A
    ---------------------------------------------------添加如下的窗体代码:
    ---------------------------------------------------
    Option Explicit
    Private Sub Command1_Click()
      Command1.Enabled = False  ProgressBar1.Min = 0
      ProgressBar1.Max = 100
      '设置进度条的最大和最小值  ShowProgressInStatusBar True
      Timer1.Enabled = True
      '启动定时器模拟一项任务
    End SubPrivate Sub ShowProgressInStatusBar(ByVal bShowProgress As Boolean)
      Dim tRC As RECT
        
      If bShowProgress Then
        SendMessage StatusBar1.hwnd, SB_GETRECT, 1, tRC
        '状态栏的第一栏为0 ,第二栏为1
        With ProgressBar1
          SetParent .hwnd, StatusBar1.hwnd
          .Move tRC.Left, tRC.Top, tRC.Right - tRC.Left, tRC.Bottom - tRC.Top      '移动进度条到状态栏
          .Visible = True
          .Value = 0
        End With
      Else
        SetParent ProgressBar1.hwnd, Me.hwnd
        ProgressBar1.Visible = False
      End If
    End SubPrivate Sub Form_Load()
      ProgressBar1.Visible = False
      Timer1.Enabled = False
      Timer1.Interval = 20
    End SubPrivate Sub Form_Unload(Cancel As Integer)
      ShowProgressInStatusBar False
      '把进度条控件的容器还原为窗体
    End SubPrivate Sub Timer1_Timer()
      Static lNum As Long
      lNum = lNum + 5
      If lNum > 100 Then
        Timer1.Enabled = False
        ShowProgressInStatusBar False
        Command1.Enabled = True
        lNum = 0
      End If
      ProgressBar1.Value = lNum
    End Sub