Hallo,
ich habe mal wieder ein Trivialproblem. Ich möchte durch scrollen die Größe von Controls verändern. Funktioniert soweit. Da aber die Höhe im gleichen Maße wie die Breite verändert werden muss, errechne ich vorher das Verhältnis der Kantenlängen. In der Paxis funktioniert das leider nicht wie es soll. Beim hin und herscrollen verändert sich das Verhältnis, obwohl es ja gleich bleiben sollte...
Spoiler anzeigen
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include "MouseOnEvent.au3"
#Include <Misc.au3>
global $zaehler
[/autoit] [autoit][/autoit] [autoit]#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 468, 343, 192, 114)
$Group1 = GUICtrlCreateGroup("Ändern", 72, 120, 105, 185)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$plus = GUICtrlCreateButton("+", 336, 96, 27, 25, $WS_GROUP)
$minus = GUICtrlCreateButton("-", 368, 96, 50, 50, $WS_GROUP)
$label1 = GUICtrlCreateLabel("Verhältnis größer", 1, 1, 60, 40)
$label2 = GUICtrlCreateLabel("Verhältnis kleiner", 1, 40, 60, 40)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
;~ $hot = HotKeySet("{a}", "msgbox1")
$vUser32Dll = DllOpen("user32.dll")
While True
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
case $GUI_EVENT_SECONDARYDOWN
_MouseSetOnEvent($MOUSE_WHEELSCROLLDOWN_EVENT, "scrollunten")
_MouseSetOnEvent($MOUSE_WHEELSCROLLup_EVENT, "scrolloben")
Case $GUI_EVENT_SECONDARYUP
_MouseSetOnEvent($MOUSE_WHEELSCROLLDOWN_EVENT)
_MouseSetOnEvent($MOUSE_WHEELSCROLLUP_EVENT)
EndSwitch
WEnd
Func scrollunten()
$mausinfo = GUIGetCursorInfo($Form1)
$controlinfo = ControlGetPos($Form1, "", $mausinfo[4])
$verhaeltnis = $controlinfo[2] / $controlinfo[3]
guictrlsetdata($label1, $verhaeltnis)
$neuebreite = $controlinfo[2] * 0.95
$neuehoehe = $neuebreite / $verhaeltnis
GUICtrlSetPos ($mausinfo[4], $controlinfo[0], $controlinfo[1], $neuebreite, $neuehoehe)
endFunc
func scrolloben()
$mausinfo = GUIGetCursorInfo($Form1)
$controlinfo = ControlGetPos($Form1, "", $mausinfo[4])
$verhaeltnis = $controlinfo[2] / $controlinfo[3]
guictrlsetdata($label2, $verhaeltnis)
$neuebreite = $controlinfo[2] * 1.05
$neuehoehe = $neuebreite / $verhaeltnis
GUICtrlSetPos ($mausinfo[4], $controlinfo[0], $controlinfo[1], $neuebreite, $neuehoehe)
EndFunc
Wenn ich $neuehoehe = $neuebreite / $verhaeltnis in $neuehoehe = $controlinfo[2] * 0.95 bzw. 1.05 ändere, passiert genau das gleiche mit den Controls. Sie werden beim hin- und herscrollen immer schmaler.