使用FindWindow找到那个窗口,使用SetWindowPos将窗口置于所有窗口之上

解决方案 »

  1.   

    to hydnoahark(诺亚方舟):
    setwindowpos我试过,我现在只能使窗体获得焦点,使它在工具栏中闪烁,却无法使它自动弹出到顶层窗口,你是如何做的,请给事例!!谢谢!
      

  2.   

    既然你很急何必要让窗体最小化呢?直接hide/show不就行了吗
      

  3.   


    SetWindowPos Me.hWnd, HWND_TOP, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
      

  4.   

    to : hydnoahark(诺亚方舟) :
    SetWindowPos Me.hWnd, HWND_TOP, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
    我试过了,但是还是老问题,它只能在任务栏中闪烁,却无法自动弹出到顶层窗口,必须要用鼠标点一下才行。而我希望它能够自动弹出来,就像smart messager一样,有消息到来时,消息窗体就弹出来。我想,可能需要使用一个使得系统的当前活动进程切换到本程序进程的api函数,但我不知道如何写??高手邦我!!!
      

  5.   

    使用AppActivate 你的窗口的title:
    eg. AppActivate "Inside Microsoft SQL Server 2000 eBook"
      

  6.   

    to hydnoahark(诺亚方舟) :
    AppActivate 也不行啊,大哥!还是在任务栏中一闪一闪的,没有弹出来,埃!
      

  7.   

    改变窗口的windowsstate不行吗?
      

  8.   

    测试代码:
    Option Explicit
    Const HWND_TOPMOST = -1
    Const SWP_NOSIZE = &H1
    Const SWP_NOMOVE = &H2
    Const SWP_SHOWWINDOW = &H40
    Private Declare Sub SetWindowPos Lib "User32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)
    Private Sub Form_Load()
        
        Timer1.Interval = "10000"
        Timer1.Enabled = True
    End SubPrivate Sub Timer1_Timer()
        Timer1.Enabled = False
           
        SetWindowPos Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_SHOWWINDOW Or SWP_NOSIZE Or SWP_NOMOVE
    End Sub
      

  9.   

    先用setwindowspos
    然后再用showwindow
      

  10.   

    如果,还有行,请给我发邮件,试一下,我以前也曾经是分析过此问题。
    现象:用一个VB可执行程序调用另一个VB可执行程序