在下面得接收邮件程序里,我写的有关显示接收每封邮件进度的进度条代码写得不好,显示的很不好看,求教高手帮助修改一下,谢谢!!!
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim strData As StringStatic intMessages          As Integer '记录信箱的信件数
Static intCurrentMessage    As Integer '当前下载的信件
Static strBuffer            As String  '接收消息的字符串变量
Static strBuffe             As String  '接收消息的字符串变量
Static strBuff              As Long
Dim strMs                   As String
Dim ProB                    As Long
Dim fbqd                    As String
Dim strMs1                  As Long
Dim hh                      As Long
Dim subjectSUBJECT          As String '主题
Dim READREAD                As String
Dim AROUND                  As String '来信人
Dim DATEDATE                As String '日期
Dim ACCESSORIES             As Integer '附件
'Dim DIMENSION               As Long    '大小
Dim INDEXINDEX              As String 'ID号
Dim xjtxx1                  As xjtxx
Dim ddxjtxx                 As Long
Dim deftFileNum             As Integer
deftFileNum = FreeFile
'从winsock接收缓冲区中读取数据
Winsock1.GetData strData
If Left$(strData, 1) = "+" Or m_State = POP3_RETR Then
    Select Case m_State
        Case POP3_Connect
            intMessages = 0
            m_State = POP3_USER
            Winsock1.SendData "USER " & user & vbCrLf
        Case POP3_USER
            m_State = POP3_PASS
            '发送密码
            Winsock1.SendData "PASS " & passwork & vbCrLf
        Case POP3_PASS
            m_State = POP3_STAT
            Winsock1.SendData "STAT" & vbCrLf
        Case POP3_STAT
            intMessages = CInt(Mid$(strData, 5, _
                          InStr(5, strData, " ") - 5))
               Label2.Caption = "共有" & intMessages & "封邮件"
            If intMessages > 0 Then
                '如果邮件的数量>0,设置当前会话状态为取回信件阶段
                m_State = POP3_LIST
                '设置变量表明当前取回的是哪个信件
                intCurrentMessage = intCurrentMessage + 1
                Winsock1.SendData "LIST 1" & vbCrLf
            Else
                '如果是处于其它状态,设置当前状态为退出会话阶段
                m_State = POP3_QUIT
                '发送QUIT命令退出会话过程
                Winsock1.SendData "QUIT" & vbCrLf
                MsgBox "您没有邮件!!!", vbInformation
            End If
        Case POP3_LIST
        strBuff = CLng(Trim(Mid(strData, 7)))
          m_State = POP3_UIDL
          Winsock1.SendData "UIDL " & CStr(intCurrentMessage) & vbCrLf
        Case POP3_UIDL
        strBuffe = strData
         Set m_oMess = New CMess
                m_oMess.CreateFrom YHLJ
                m_oMess.CreateFromText strBuffe
                strM = m_oMess.Mes1
                strMs = m_oMess.Mes
         If strMs = "no" Then
                If sfblbf = "YES" Then
                'fbqd = "no"
                 m_State = POP3_DELE
                 Winsock1.SendData "DELE" & Space(1) & intCurrentMessage & vbCrLf
                Else
                If intCurrentMessage = intMessages Then
                    m_State = POP3_QUIT
                    '退出POP3会话
                    Winsock1.SendData "QUIT" & vbCrLf
                Else
                Label3.Visible = False
                  intCurrentMessage = intCurrentMessage + 1
                    m_State = POP3_LIST
                    '发送RETR命令取回下一封信
                    Winsock1.SendData "LIST " & CStr(intCurrentMessage) & vbCrLf
                End If
                End If
                End If
                 If strMs = "yes" Then
                  If sfblbf = "YES" Then
                  'fbqd = "yes"
                 m_State = POP3_DELE
                 Winsock1.SendData "DELE" & Space(1) & intCurrentMessage & vbCrLf
                
                Else
                 Label3.Visible = True
                  m_State = POP3_RETR
                 '发送RETR及参数取回第一封邮件
                  ProB1.Visible = True         '显示进度条
                 ProB1.Min = 0                 '进度条开始值
              
                Winsock1.SendData "RETR " & CStr(intCurrentMessage) & vbCrLf
          
                End If
                End If
        Case POP3_RETR
          On Error Resume Next
            strBuffer = strBuffer & strData
            If InStr(1, strBuffer, vbLf & "." & vbCrLf) Then
                         ProB1.Max = Len(strBuffer) / strBuff
            strBuffer = Mid$(strBuffer, InStr(1, strBuffer, vbCrLf) + 2)
                strBuffer = Left$(strBuffer, Len(strBuffer) - 3)
                Set m_oMessage = New CMessage
                     m_oMessage.CreateFrom1 YHLJ
                m_oMessage.CreateFromText strBuffer
                    Label1.Caption = Mid(m_oMessage.Mes, 1, 5)
                 AROUND = m_oMessage.MesMESLAXIREN
                 subjectSUBJECT = m_oMessage.Mes
                 DATEDATE = m_oMessage.MesMESDATE
                 ACCESSORIES = m_oMessage.MesMESFJSFCZ
                 strBuffer = ""
                '判断是否已经取完信件
                If intCurrentMessage = intMessages Then
                    m_State = POP3_QUIT
                    '退出POP3会话
                    Winsock1.SendData "QUIT" & vbCrLf
                Else
                    m_State = POP3_LIST
                    '发送RETR命令取回下一封信
                    Winsock1.SendData "LIST " & CStr(intCurrentMessage) & vbCrLf
                    End If
                     Else
         ProB1.Value = Len(strBuffer) / strBuff      '进度条得值
                End If
        Case POP3_DELE
                 If fbqd = "yes" Then
                    m_State = POP3_RETR
                    '发送RETR命令取回下一封信
                    ProB1.Visible = True              '显示进度条
                 ProB1.Min = 0
                    Winsock1.SendData "RETR " & CStr(intCurrentMessage) & vbCrLf
                    Else
                    If intCurrentMessage = intMessages Then
                    m_State = POP3_QUIT
                    '退出POP3会话
                    Winsock1.SendData "QUIT" & vbCrLf
                Else
                Label3.Visible = False
                  intCurrentMessage = intCurrentMessage + 1
                    m_State = POP3_LIST
                    '发送RETR命令取回下一封信
                    Winsock1.SendData "LIST " & CStr(intCurrentMessage) & vbCrLf
                End If
                End If
             Case POP3_QUIT
         Winsock1.Close
            Unload Me
        intCurrentMessage = 0
    End Select
Else
    Winsock1.Close
    MsgBox "POP3 Error: " & strData, _
    vbExclamation, "POP3 Error"
End If
End Sub