VB程序中处理随机事件(3) 在设计Windows程序时,往往会感觉到程序的实际运行过程与你想象的相差甚远,调试时就非常希望看到程序运行时后台的一些情况。利用VB的单步执行或Debug命令,都会受到一些限制。利用消息广播引擎,制作一个通用的实时消息事件查看程序,就可以很好地解决这一问题。查看程序的主要工作就是捕捉一组事先定义好的消息事件,并将消息的内容显示在列表框内,可以只用一个窗体完成,大体样子如下: Const MsgInfoID=101 Private WithEvents mClient As MsgClient Private Sub Form_Load() Set mClient = New MsgClient MClient.minMsg= MsgInfoID MClient.maxMsg= MsgInfoID AddMsgClient mClient End Sub Private Sub Form_Unload(Cancel As Integer) DelMsgClient mClient End Sub Private Sub mClient _RecMsg(ByVal msg As VbMsgSrv.VbMsg) List1.AddItem msg.iTimeStr & Chr(9) & msg.iName & Chr(9) & msg.iDescription End Sub 在被调试的程序中,为了调用方便,可以编写一个全局过程,象下面这个样子: Const MsgInfoID=101 Public Sub MsgInfo(iName As String,iDes As String) Dim msg As New MsgClient With msg .iName = iName . iDescription = iDes End With SendMsg msg End Sub 在程序的重点需要了解的环节插入MsgInfo过程,运行时信息就会在事件查看程序的窗 口中被显示出来。这种方法尤其适合调试多程序协作的软件系统。当软件系统正式交给用 户时,插入的MsgInfo过程也不一定要全部删掉,只要将实时查看变为写入日志文件,这 些运行时的信息也是日后软件维护的第一手资料。