kk_lee69 发表于 2016-5-7 22:55:08

如何检测 父子窗口的 子窗 状态是 隐藏 还是显示呢??[已解決]

本帖最后由 kk_lee69 于 2016-5-8 00:10 编辑

如何检测 父子窗口的 子窗 状态是 隐藏 还是显示呢??

如 下面程序代码

使用WinGetState 无法检测出子窗的状态

求解!!

#include <GUIConstants.au3>
#include <WindowsConstants.au3>
#include <ListviewConstants.au3>
#Include <Constants.au3>
#include <WindowsConstants.au3>
#Include <WinAPIEx.au3>

$main_GUI = GUICreate("Tab Sample", 400, 320, -1, -1,$WS_MAXIMIZEBOX+ $WS_MINIMIZEBOX+ $WS_SIZEBOX);, BitOr($GUI_SS_DEFAULT_GUI,$WS_CLIPSIBLINGS))
$button1 = GUICtrlCreateButton("显示", 10, 270, 70, 20)
$button2 = GUICtrlCreateButton("隐藏", 100, 270, 70, 20)
$button3 = GUICtrlCreateButton("检测", 220, 270, 70, 20)

GUISetState()

$child1= GUICreate("child1",370, 215, 15, 40, BitOr($WS_CHILD,$WS_TABSTOP), -1, $main_GUI)
GUISetBkColor(0x257788); just for dimensing the child
GUISetState()

While 1
   
    Switch GUIGetMsg()
      Case $GUI_EVENT_CLOSE
            Exit
      Case $button1
                        GUISetState(@SW_SHOW, $child1)
                       
      Case $button2
                        GUISetState(@SW_HIDE, $child1)
                       
      Case $button3
                        MsgBox(0,"",BitAND(WinGetState("child1"),2))
                       
    EndSwitch


WEnd

afan 发表于 2016-5-7 23:50:46

第31行的 "child1" 改为 $child1

kk_lee69 发表于 2016-5-8 00:09:16

回复 2# afan

WinGetState ( "標題" [, "文本"] )

沒說 可以用 ID 或者 HAND 呀

原來還可以這樣用

afan 发表于 2016-5-8 00:12:05

回复 3# kk_lee69


    所有内置函数 Win*('标题')均可使用句柄,   Contro*('标题') 同样可使用句柄……

zghwelcome 发表于 2016-5-8 11:05:56

回复 4# afan


    好的分析总结,受教

nmgwddj 发表于 2016-5-9 14:41:07

是的,原来用 Win* 系列函数的时候,还以为只能根据标题名字或窗口内容操作呢。后来看别人代码才知道可以直接使用句柄。
页: [1]
查看完整版本: 如何检测 父子窗口的 子窗 状态是 隐藏 还是显示呢??[已解決]