如何把一个最小化在任务栏上的窗口恢复到所有窗口的最前面,并且激活它,送100分呀(100分)

  • 主题发起人 主题发起人 fangfei
  • 开始时间 开始时间
F

fangfei

Unregistered / Unconfirmed
GUEST, unregistred user!
; ;我在做一个任务栏程序,程序最小化到任务栏上后,要恢复它,可是总是藏在其它
窗口的下面,如何才能把它放到最前面并且激活它,像NetAnts一样(金山词霸只能把
窗口推到最前面却不能激活), 我用了ShowWindow, SetForgroundWindow, BrongWindowtoFront,
SetActiveWindow都不行。
 
你先用isiconic来判断一下是否窗口最小化
如果是用 showwindow
 
SetWindowPos(Form.Handle,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE);
;
 
取得Application.Handle后,如下判断。
if IsIconic(AppWnd) then
; ;ShowWindow(Appwnd,SW_RESTORE)//假如缩小为图标,恢复原大小
else
; ;SetForegroundWindow(AppWnd);//否则,到最前面来
 
;用ShowWindow只能恢复窗口呀,但是我要把窗口推到最前面(屏幕上打开多个窗口),
如果ShowWindow加HWND_TOPMOST参数的话,窗口就变成了一个AlwaysOnTop的窗口了,我不
想这样呀。SetForegroundWindow我早试过了,它并不能保证能把窗口推到最前面,大多数
情况是窗口在闪烁,相当于执行了FlashWindow的功能。
; 请注意NetAnts和金山词霸在实现此功能上的区别;期待高手!
 
最小化用 showwindow(handle,sw_hide);
还原用 showwindow(handle,sw_show)
可以实现吧, 我做的软件就没问题呀.
 
if IsIconic(Application.Handle) then
; ; ; Application.Restore
; ;else
; ; ; Application.BringToFront;
问题解决了告诉我一声,OK? [:)]
 
我可以了
; if IsIconic(AppHWD) then
; ; ShowWindow(AppHWD, SW_RESTORE);
; SetForegroundWindow(HWD);
; SetActiveWindow(HWD);
 

Similar threads

后退
顶部