拉风晓晓 发表于 2014-7-31 21:14:00

【已解决】得到的instance值有时不正确,为什么?求改错

本帖最后由 拉风晓晓 于 2015-5-6 14:09 编辑

$handle为控件的句柄Func _GetInstance($handle)
        Local $hWnd, $i, $Data,$testtxt
        $hWnd = _WinAPI_GetAncestor($handle, $GA_ROOTOWNER)
        $testtxt = WinGetClassList($hWnd)
        If $testtxt <> '' Then
                ;子窗口的parent和owner是同一个窗口,但是普通窗口的parent一般是NULL,owner是桌面
                $Data = _WinAPI_EnumChildWindows($hWnd)
                If IsArray($Data) Then
                        For $i = 1 To $Data
                                If $Data[$i] = $handle Then
                                        Return $i-1 ;如果是控件,通过这里返回instance值,$i比该值大1
                                EndIf
                        Next
                EndIf
        EndIf

        Return -1 ;如果非控件,通过这里返回-1
EndFunc   ;==>_GetInstance
页: [1]
查看完整版本: 【已解决】得到的instance值有时不正确,为什么?求改错