superflq 发表于 2008-12-16 13:45:03

怎样生成置顶可见,但是不是激活的窗口

怎样生成置顶可见,但是不是激活的窗口
如下面这个报时,报时的时候就会把报时的窗口激活,原来在工作的程序 比如 QQ聊天窗,失去激活影响使用了
#include
;#include
#include
Global $Rect = WinGetPos('')
$i=0
Sleep(8000)
baoshi()
Func baoshi()
$hwnd = GUICreate("整点报时", 160, 60, 0, @DesktopHeight-$Rect-60, 0x80800000,0x00000008)
$hwndLabel1 = GUICtrlCreateLabel("现在是北京时间", 20, 8, 120, 20)
GUICtrlSetFont(-1, 12, 800, 0, "楷体_GB2312")
$hwndLabel2 = GUICtrlCreateLabel(@HOUR&'点'&@MIN&'分'&@SEC&'秒', 40, 35, 80, 20,0x01)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040001);slide in from left
GUISetState(@SW_SHOW)
While 1
GUICtrlSetData($hwndLabel2,@HOUR&'点'&@MIN&'分'&@SEC&'秒')
sleep(1000)
$i+=1
If $i =10 then
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00050002);slide out to left
;GUICtrlDelete($hwnd)
Exit
EndIf
WEnd
EndFunc;整点报时

[ 本帖最后由 superflq 于 2008-12-16 15:37 编辑 ]

robin.von 发表于 2008-12-16 17:11:51

置顶前先取到当前激活窗口,这个程序置顶以后再把原来的窗口激活。

superflq 发表于 2008-12-16 17:33:02

我也想过这个方案,
但是要是全屏在搞游戏,这样一转换肯定会被退出来,

amgloon 发表于 2008-12-17 09:14:29

那个窗口样式啊???

superflq 发表于 2009-1-7 13:50:46

顶一个没人,回复呀:face (30):

zps26 发表于 2010-3-29 10:50:28

我也遇到这个问题,窗口总是在激活状态,别的窗口会失去焦点

298311657 发表于 2010-3-29 14:17:01

GUISetState(@SW_SHOWNOACTIVATE)
页: [1]
查看完整版本: 怎样生成置顶可见,但是不是激活的窗口