xunyar 发表于 2011-5-6 19:20:24

激活隐藏的窗口后,为什么不能再隐藏?

以下代码点击关闭后,双击托盘后,恢复原来的窗口,但是再点击关才时不能再隐藏了,请高手指点一下!#include <Constants.au3>

#include<ie.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <Constants.au3>
#include <ButtonConstants.au3>
#NoTrayIcon
Opt("TrayOnEventMode",1)
Opt("TrayMenuMode",1)
;默认菜单项目 (脚本暂停中/退出) 将不会显示.
$exititem = TrayCreateItem("退出")
TraySetState()
TraySetClick(16)
XIAO()
ds2()
Func ds2()
TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE,"SpecialEvent")
TraySetOnEvent($TRAY_EVENT_SECONDARYUP,"SpecialEvent")
TraySetState()
EndFunc
While 1
        $msg = GUIGetMsg()
      Sleep(10)      ; 空闲循环
WEnd
Exit
; Functions
Func SpecialEvent()
      Select
                Case @TRAY_ID = $TRAY_EVENT_PRIMARYDOUBLE
                                     GUISetState(@SW_SHOW )
                                                                       
                Case @TRAY_ID = $TRAY_EVENT_SECONDARYUP
                        Msgbox(64,"SpecialEvent-Info","次鼠标键双击.")
                        Exit
      EndSelect
EndFunc

Func ExitEvent()
      Exit
        EndFunc
Func XIAO();增
       $oIE = _IECreateEmbedded ()

GUICreate(" 百度",860,632, -1,-1 , 0x04000000 + 0x00CF0000)

$GUIActiveX = GUICtrlCreateObj($oIE, 2, 2, 880, 680)
GUICtrlSetResizing($GUIActiveX , 0x0001)
GUISetState()
_IENavigate ($oIE, "http://www.baidu.com")
While 1
   $msg = GUIGetMsg()
    Select
      Case $msg = $GUI_EVENT_CLOSE
      Msgbox(64,"SpecialEvent-Info","次鼠标键双击.")
                GUISetState(@SW_HIDE)
       
                ExitLoop
        EndSelect
                WEnd
               
        EndFunc
          Func _XIAO();增
      GUISetState(@SW_HIDE)
               
        EndFunc
       

zzz867 发表于 2011-5-7 10:45:57

先看看別人是怎麼解釋的,現在時間不多,沒時間研究了

netegg 发表于 2011-5-8 18:56:21

本帖最后由 netegg 于 2011-5-8 19:01 编辑

$GUI_EVENT_CLOSE这个消息处理里面close之后就退出循环了,哪还有消息呀
还有,以后再发代码的时候,把结构整理好了再发,这个问题不是很难,但是你的代码太乱了,谁有那么多功夫还替你整理好代码在回答呀

xunyar 发表于 2011-5-10 14:21:38

乱吗?
能整理好我就已经发布源码啦!还用问吗?

netegg 发表于 2011-5-12 05:39:33

本帖最后由 netegg 于 2011-5-13 00:39 编辑

回复 4# xunyar
既然你这么说,自己对着看#include <Constants.au3>

#include<ie.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
#include <ButtonConstants.au3>
#NoTrayIcon
Opt("TrayOnEventMode", 1)
Opt("TrayMenuMode", 1)

;默认菜单项目 (脚本暂停中/退出) 将不会显示.
$exititem = TrayCreateItem("退出")

TraySetState()
TraySetClick(16)

XIAO()
ds2()

Func ds2()
    TraySetOnEvent($TRAY_EVENT_PRIMARYDOUBLE, "SpecialEvent")
    TraySetOnEvent($TRAY_EVENT_SECONDARYUP, "SpecialEvent")
    TraySetState()
EndFunc   ;==>ds2

While 1
    $msg = GUIGetMsg()
    Sleep(10) ; 空闲循环
WEnd

Exit

; Functions
Func SpecialEvent()
    Select
      Case @TRAY_ID = $TRAY_EVENT_PRIMARYDOUBLE
                GUISetState(@SW_SHOW)
        Case @TRAY_ID = $TRAY_EVENT_SECONDARYUP
                MsgBox(64, "SpecialEvent-Info", "次鼠标键双击.")
              Exit
    EndSelect
EndFunc   ;==>SpecialEvent

Func ExitEvent()
        Exit
EndFunc   ;==>ExitEvent

Func XIAO() ;增
    $oIE = _IECreateEmbedded()
    GUICreate(" 百度", 860, 632, -1, -1, 0x04000000 + 0x00CF0000)
    $GUIActiveX = GUICtrlCreateObj($oIE, 2, 2, 880, 680)
    GUICtrlSetResizing($GUIActiveX, 0x0001)
    GUISetState()
    _IENavigate($oIE, "http://www.baidu.com")
   While 1
        $msg = GUIGetMsg()
        Select
            Case $msg = $GUI_EVENT_CLOSE
                MsgBox(64, "SpecialEvent-Info", "次鼠标键双击.")
                GUISetState(@SW_HIDE)
                ExitLoop
        EndSelect
   WEnd
EndFunc   ;==>XIAO

Func _XIAO() ;增
    GUISetState(@SW_HIDE)
EndFunc   ;==>_XIAO

而且,如果你认为你自己那样写代码很好,没有指责的意思,出问题的时候一样还是找不到。
另外,鉴于你4楼的回应,现在帮你把代码整理好了,想来应该可以解决问题了,就不多此一举解答了
如果感觉自己整理代码很麻烦http://www.autoitx.com/thread-23285-1-1.html有方法,

palkiller 发表于 2011-5-13 17:33:37

{:face (355):}蛋蛋说的没错,确实够乱的,源代码里头的函数还得睁大眼睛去找endfunc在哪儿...呵呵...

xinsiye 发表于 2011-6-9 13:40:32

好帖子!!!路过要顶上一顶!!!!!超给力























http://www.jiudingji8.com/images/xiaoshuo.gif
淘宝网女装夏装新款2011韩版 淘宝网女装秋装新款 异世邪君5200 斗破苍穹5200 吞噬星空5200 天珠变5200 遮天5200 异界魅影逍遥5200 永生5200 大周皇族5200 灵罗戒5200 黄金瞳5200

xz00311 发表于 2011-6-10 00:44:19

用个隐藏缩小函数看看

netsmu 发表于 2011-6-10 18:37:12

代码有点乱,看得不是很清楚。

逆水风帆 发表于 2011-6-10 18:43:58

可能是用记事本什么的编写的吧
页: [1]
查看完整版本: 激活隐藏的窗口后,为什么不能再隐藏?