MSN有这样一个效果:
已经开了一个MSN,并且为托盘或最小化状态时,如果你再双击MSN,这时不会产生一个MSN的新的窗口,而是把你原先的那个MSN窗口显示出来。不知如何实现?

解决方案 »

  1.   

    you mean this:??
    Public Sub WakeUpWindow(ByVal sCaption As String)
        Dim lWnd As Long, lRet As Long
        lWnd = FindWindow(vbNullString, sCaption)
        lRet = ShowWindow(lWnd, SW_SHOWNORMAL)
        lRet = SetForegroundWindow(lWnd)
    End Sub
      

  2.   

    我现在有两个窗体。一个用于托盘,一个用于显示。用于显示的窗体可以Unload。但是双击托盘里的图标就可以把用于显示的窗体Show出来。为了防止程序多次被执行,我判断了程序只运行一个。但是,我想做出MSN那样的效果。
      

  3.   

    如果没错,应该是:
    第一句:根据Caption得到Hwnd
    第二句:根据Hwnd显示窗口
    第二句:将窗口设为系统的前台窗口可是。我的用于显示的窗口,都Unload了,应该没有Caption啊?
      

  4.   

    Unload了当然找不到,那就New 一个出来
      

  5.   

    New一个?能New自然能Show。问题的关键是,如何才能触发New也好、Show也好这个事件啊!别的论坛的朋友,推荐我使用DDE通讯。可是我不知道怎么写
      

  6.   

    DDE是可以的
    但是,你可以不unload 那个窗体嘛!
    你可以直接hide
    然后用我给你的
    wakeupwindow form.caption
      

  7.   

    to : nik_Amis(Azrael) 
    你终于没有 ....  了
      

  8.   

    to nik_Amis(Azrael)
    其实,就是想讨论一下,如果Unload了以后应该怎么做。还望各位朋友,不惜赐教啊!!!
      

  9.   

    我好像再dapha里面给你贴了关于DDE的解决方案??
      

  10.   

    Private Sub Form_Unload(Cancel As Integer)
    On Error Resume Next
    If Not EndingApp Then
        Hide
        Cancel = True
    Else
        DoEvents
        ClearApp
    End If
    On Error GoTo 0
    End Sub用变量EndingApp 来控制是否真正的关闭窗体,所以只能通过菜单来关闭程序.
      

  11.   

    是的,因此我还看了不少DDE的文章。但都是些理论,没有具体实现方法。还有,Dapha关门了。版主说,至少2个多星期才能解决。哎再次提醒:
    我就是要让一个已经Unload了的窗体Show出来,不是Hide的窗口。谢谢!
      

  12.   

    晕,是不是我记错了
    我记得我在dapha里面是给你贴得源码啊你几乎不用改就可以用了啊