WinGetPos scheint auch die in GUICreate angegebenen Werte für Width und Height zu ignorieren ?!
Nein, Du bekommst mit "WinGetPos" nur die wirkliche Windowsgröße (inkl. Border). Das, was Du bei GuiCreate angibst, ist die ClientSize.
Siehe hier:
Code
Global $g_sSpacer = '-----------------------------------------------------------------------------------------------------------------------------------' & @CRLF
_Example_BAD()
_Example_OK()
Func _Example_BAD()
ConsoleWrite($g_sSpacer)
Local $hGUI = GUICreate('', 320, 160, 199, 99)
_PrintPos('! _Example_BAD() : $aPos after GUICreate("") ', $hGUI)
GUISetState(@SW_MINIMIZE)
_PrintPos('! _Example_BAD() : $aPos after GUISetState(@SW_MINIMIZE)', $hGUI)
GUIDelete()
EndFunc
Func _Example_OK()
ConsoleWrite($g_sSpacer)
Local $hGUI = GUICreate('', 295, 95, 199, 99)
_PrintPos('+ _Example_OK() : $aPos after GUICreate("") ', $hGUI)
GUISetState()
_PrintPos('+ _Example_OK() : $aPos after GUISetState() ', $hGUI)
GUISetState(@SW_MINIMIZE)
_PrintPos('+ _Example_OK() : $aPos after GUISetState(@SW_MINIMIZE)', $hGUI)
GUIDelete()
ConsoleWrite($g_sSpacer)
EndFunc
Func _PrintPos($sText, $hWnd)
Local $aPos = WinGetPos($hWnd)
ConsoleWrite(StringFormat('%-59s = X: %6i, Y: %6i, W: %6i, H: %6i\n', $sText, $aPos[0], $aPos[1], $aPos[2], $aPos[3]))
$aPos = WinGetClientSize($hWnd)
ConsoleWrite(StringFormat('%-59s = W: %6i, H: %6i\n', 'Client-Size', $aPos[0], $aPos[1]))
EndFunc
Alles anzeigen