Active EXE(commTrial.exe)
有一个窗体frm,有一个类clsComm在窗体上有一个MSComm控件用来发送串口数据,以下是类中的具体代码:
----------------------------------
Option ExplicitPrivate frmComm As frm
Private ctlMSComm As MSComm
Public Event CommReturn(bFlag As Boolean)Private Sub Class_Initialize()
    Set frmComm = New frm                
    '引用窗体的实例,只是为了使用其上的MSCOMM控件
    Load frmComm
    Set ctlMSComm = frmComm.MSComm1
End SubPrivate Sub Class_Terminate()
    Set ctlMSComm = Nothing
    Unload frmComm
    Set frmComm = Nothing
End Sub''''''''''''''''''''''''''''''''''''''''''''''''''''
''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Function SendData() As Boolean
On Error GoTo ErrL: Err.Clear
    Dim btSend() As Byte
    ReDim btSend(5)
    btSend(0) = 1
    btSend(1) = 1
    btSend(2) = 1
    btSend(3) = 0
    btSend(4) = &H51
    btSend(5) = &H88       
    '''发送数据是我公司的电子产品的串口通讯协议
    ctlMSComm.OutBufferCount = 0
    ctlMSComm.InBufferCount = 0
    '''
    ctlMSComm.Output = btSend
    '''
    Dim t As Single
    t = Timer
    Do While Timer - t < 0.1
        DoEvents
    Loop
    '''
    If ctlMSComm.InBufferCount = 0 Then
        RaiseEvent CommReturn(False)
    Else
        RaiseEvent CommReturn(True)
    End If
    Exit Function
ErrL:
    SendData = False
End Function-------------------------------------------------------------测试工程Test.vbp,窗体上只有一个按钮控件
代码如下:
--------------------------------------------------------------
Dim WithEvents clsTest As clsCommPrivate Sub clsTest_CommReturn(bFlag As Boolean)
    If bFlag Then
        MsgBox "接受数据正确!", vbInformation
    Else
        MsgBox "无接受数据", vbCritical
    End If
End SubPrivate Sub Command1_Click()
    If Not clsTest.SendData Then
        MsgBox "发送数据发生错误!", vbCritical
    End If
End SubPrivate Sub Form_Load()
    Set clsTest = New clsComm
End SubPrivate Sub Form_Unload(Cancel As Integer)
    Set clsTest = Nothing
End Sub
--------------------------------------------------------------
刚刚开始设计ActiveX EXE的内容,请各路大哥指教小弟一下。