35888894 发表于 2013-6-18 11:08:20

【已解决】在不知道任何父窗体信息的前提下,如何通过控件句柄获得窗体句柄

本帖最后由 35888894 于 2013-6-18 11:23 编辑

在不知道任何父窗体信息的前提下,如何通过控件句柄获得窗体句柄
谢谢

35888894 发表于 2013-6-18 11:22:43

搞定,解决方法如下:
Local $parentwindw=""
Local $var=WinList()
For $i = 1 To $var
    If $var[$i] <> "" And IsVisible($var[$i]) Then
                                  Local $sClassList = WinGetClassList($var[$i])
                                        If @error Then Return SetError(1, 0, 0)
                                        Local $avClassList = StringSplit($sClassList, @LF)
                                        For $c = 1 To $avClassList
                                                Local $NN = 1
                                                While 1
                                                        $hCtrl = ControlGetHandle($var[$i], "", $avClassList[$c] & $NN)
                                                        If @error Then
                                                                ExitLoop
                                                        Else
                                                                $NN += 1
                                                        EndIf
                                                        If $hCtrl=$Dhandle Then
                                                                $parentwindw=$var[$i]
                                                                ExitLoop
                                                                EndIf
                                                        WEnd
                                        Next
    EndIf
Next

afan 发表于 2013-6-18 11:23:09

_WinAPI_GetAncestor()
页: [1]
查看完整版本: 【已解决】在不知道任何父窗体信息的前提下,如何通过控件句柄获得窗体句柄