在VB中,当使用MSGBOX函数弹出一对话框时,VB不再响应其它事件,比如说WINSOCK的DataArrival事件,要等用户对对话框作出反应,其它事件才能产生,才能接收DataArrival事件,但用模式窗口(FORM1.SHOW 1)时,程序却能对DataArrival事件作出反应。请问有什么办法在MSGBOX对话框弹出时,DataArrival事件发生时也能处理?或是改用什么方法,在给用户提示的同时,不影响其它事件的产生?

解决方案 »

  1.   

    最简单的你自己做一个msgbox函数显示自己的窗体代替系统的msgbox就可以了
      

  2.   

    我一开始也是这么想的,但会增加系统开销,还有造成程序更复杂,能用系统的最好,如果实在不行,也只有自己做一个MSGBOX了。
      

  3.   

    Option Explicit
    Private Declare Function MessageBox Lib "user32" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal wType As Long) As LongDim i As IntegerPrivate Sub Form_Click()
    MessageBox Me.hwnd, "API MessageBox!", "使用API的MESSAGEBOX", vbOKOnly + vbExclamationEnd SubPrivate Sub Timer1_Timer()
    i = i + 1
    Label1.Caption = CStr(i)
    End Sub
      

  4.   

    我怎么就没想到用API呢? wxy_xiaoyu(程序员真没劲!) 等我回去试试,如果可以一定给分!
      

  5.   

    依我看:
    你自己做一个msgbox函数显示自己的窗体代替系统的msgbox就可以了