to hydnoahark(诺亚方舟): setwindowpos我试过,我现在只能使窗体获得焦点,使它在工具栏中闪烁,却无法使它自动弹出到顶层窗口,你是如何做的,请给事例!!谢谢!
既然你很急何必要让窗体最小化呢?直接hide/show不就行了吗
SetWindowPos Me.hWnd, HWND_TOP, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
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函数,但我不知道如何写??高手邦我!!!
使用AppActivate 你的窗口的title: eg. AppActivate "Inside Microsoft SQL Server 2000 eBook"
to hydnoahark(诺亚方舟) : AppActivate 也不行啊,大哥!还是在任务栏中一闪一闪的,没有弹出来,埃!
改变窗口的windowsstate不行吗?
测试代码: 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
setwindowpos我试过,我现在只能使窗体获得焦点,使它在工具栏中闪烁,却无法使它自动弹出到顶层窗口,你是如何做的,请给事例!!谢谢!
SetWindowPos Me.hWnd, HWND_TOP, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
SetWindowPos Me.hWnd, HWND_TOP, 0, 0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE
我试过了,但是还是老问题,它只能在任务栏中闪烁,却无法自动弹出到顶层窗口,必须要用鼠标点一下才行。而我希望它能够自动弹出来,就像smart messager一样,有消息到来时,消息窗体就弹出来。我想,可能需要使用一个使得系统的当前活动进程切换到本程序进程的api函数,但我不知道如何写??高手邦我!!!
eg. AppActivate "Inside Microsoft SQL Server 2000 eBook"
AppActivate 也不行啊,大哥!还是在任务栏中一闪一闪的,没有弹出来,埃!
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
然后再用showwindow
现象:用一个VB可执行程序调用另一个VB可执行程序