Hallo zusammen,
ich frage mich, wie man es hinkriegt, in einem Programm mit GDIPlus Objekte mit Aktionen zu versehen, sprich: Ich habe zum Beispiel ein gefülltes Rechteck (_GDIPlus_GraphicsFillRect) und möchte, dass etwas passiert, wenn der Nutzer darauf klickt, ähnlich wie bei einem Button (GUICtrlCreateButton). Hat jemand eine Idee, wie ich das hin bekomme? Ich habe schon überlegt, einfach "versteckte" Buttons zu erstellen, doch ich weiß nicht, wie ich es hinkriege, dass sie unsichtbar sind, aber immer noch funktionieren. Außerdem hatte ich die Idee, einfach die Position der Maus mit der des Rechtecks abzugleichen und mit _IsPressed zu überprüfen, ob dabei die entsprechende Maustaste gedrückt wird. Das hat aber auch nicht funktioniert:
[autoit]Func GDIP_ButtonClick($x1a, $y1a, $vWidth, $vHeight, $vMouseKey)
Local $vMouseKey2
Switch $vMouseKey
Case "Right"
$vMouseKey2 = "02"
Case "Left"
$vMouseKey2 = "01"
Case "Middle"
$vMouseKey2 = "04"
Case Else
Return SetError(1)
EndSwitch
Local $vOpt = Opt("MouseCoordMode", 0) ; Sets the CoordMode relative to the current window
Local $x2a = $vWidth + $x1a
Local $y2a = $vHeight + $y1a
Local $xb = MouseGetPos(1)
ConsoleWrite($xb & ", ")
Local $yb = MouseGetPos(2)
ConsoleWrite($yb & ", ")
Opt("MouseCoordMode", $vOpt)
If $xb > $x1a And _
$xb < $x2a And _
$yb > $y1a And _
$yb < $y2a And _
_IsPressed($vMouseKey2) Then
Return True
Else
Return False
EndIf
EndFunc[/autoit]
Alles anzeigen
Über Hilfe wäre ich sehr dankbar.
LG