﻿id	summary	reporter	owner	description	type	status	milestone	component	version	severity	resolution	keywords	cc
4063	ControlGetPos does not return info about a nested Child window	Jpm	Jon	"here a repro example
{{{#!autoit
#include <GUIConstantsEx.au3>
#include <WinAPISysWin.au3>
#include <WindowsStylesConstants.au3>

Local $hGUI = GUICreate(""ControlGetPos() "", 400, 350)
Local $idInfo = GUICtrlCreateLabel(""test"", 10, 200, 380, 150)

Local $hChild_1 = GUICreate(""Child_1"", 280, 180, 70, 10, BitOR($WS_CHILD, $WS_VISIBLE), -1, $hGUI) ; 10 pixels inside GUI
GUISetBkColor(0xFFFF00) ; yellow

Local $hChild_2 = GUICreate(""Child_2"", 240, 140, 20, 20, BitOR($WS_CHILD, $WS_VISIBLE), -1, $hChild_1) ; + 20 pixels inside $hChild_1
GUISetBkColor(0xC0FFFF) ; light blue
Local $idBtn = GUICtrlCreateButton(""Button"", 40, 40, 80, 30) ; + 40 pixels inside $hChild_2 (that's 10+20+40 = 70 pixels inside GUI)

Local $aPos1 = ControlGetPos($hChild_1, """", $idBtn); relative coord in Child1
Local $aPos = ControlGetPos($hGUI, """", $idBtn) ; to be used  for instance in MouseMove() relative to GUI client area
Local $aPos2 = ControlGetPos($hChild_2, """", $idBtn); relative coord in Child2

Local $hBtn = GUICtrlGetHandle($idBtn)
Local $hAncestor = _WinAPI_GetAncestor($hBtn, $GA_ROOT) ; = $hGUI
Local $hParent = _WinAPI_GetAncestor($hBtn, $GA_PARENT) ; = $hChild_2

GUISetState(@SW_SHOW, $hGUI)

Local $sText =  ""$hGUI = "" & $hGUI & ""   $hChild_1 = "" & $hChild_1 & ""   $hChild_2 = "" & $hChild_2 & @CRLF & _
		""Ancestor $GA_ROOT = "" & $hAncestor & "" Ancestor $GA_PARENT = "" & $hParent & @CRLF & @CRLF & _
		""Button ControlGetPos Child2 : X = "" & $aPos2[0] & "" / Y = "" & $aPos2[1] & @CRLF & _
		""Button ControlGetPos Child1 : X = "" & $aPos1[0] & "" / Y = "" & $aPos1[1] & @CRLF & _
		""Button ControlGetPos GUI    : X = "" & $aPos[0] & "" / Y = "" & $aPos[1] & @CRLF
GUICtrlSetData($idInfo, $sText)

Local $aCtrl[3] = [""Child2"", ""Child1"", ""GUI   ""]
Local $iCtrl = 0

; Click on the button from specific control or window
ControlClick($hChild_2, """", $idBtn, ""left"", 1)
ControlClick($hChild_1, """", $idBtn, ""left"", 1)
ControlClick($hGUI, """", $idBtn, ""left"", 1)

Opt(""MouseCoordMode"", 2) ; relative to GUI client area
MouseMove($aPOS[0], $aPOS[1]) ; move to the upper left of the button

While 1
	Switch (GUIGetMsg())
		Case $idBtn
			If $iCtrl < UBound($aCtrl) Then
				$sText &= @CRLF & "">>>>>>>>>> BTN clicked in "" & $aCtrl[$iCtrl] & "" <<<<<<<<<<<<<<""
				GUICtrlSetData($idInfo, $sText)
			Else
				Tooltip('BTN Clicked')
				Sleep(2000)
				Tooltip('')
			EndIf
			$iCtrl += 1

		Case $GUI_EVENT_CLOSE
			ExitLoop

	EndSwitch

	Sleep(10)
WEnd

}}}

"	Bug	assigned		AutoIt	3.3.14.0	None			
