Das Pic-Control soll sich so lange in ein anderes Bild ändern, bis die Maustaste wieder losgelassen wird. Wenn sich die Maus über dem Pic befindet, ändert sich das Bild auch ein anderes. Wo ist der Fehler?
Pic-Control ändern, während angeklickt.
-
- [ gelöst ]
-
mchope57 -
17. Oktober 2012 um 12:30 -
Geschlossen -
Erledigt
-
-
Ich bin mir jetzt nicht ganz sicher, aber ist es das, was du meinst?
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Misc.au3>#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form1 = GUICreate("Patcher", 600, 400, -1, -1, $WS_POPUP)
$Pic7 = GUICtrlCreatePic(@ScriptDir & "/main.bmp", 0, 0, 600, 400)
GUICtrlSetState( -1, $GUI_DISABLE)
$Pic1 = GUICtrlCreatePic(@ScriptDir & "/btn_up.bmp", 467, 46, 123, 36)
$Dummy = GUICtrlCreateLabel ("", 0, 0, 600, 400, -1, $GUI_WS_EX_PARENTDRAG)
GUICtrlSetBkColor( -1, $GUI_BKCOLOR_TRANSPARENT)GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]
#EndRegion ### END Koda GUI section ###While Sleep (30)
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
$Cursor = GUIGetCursorInfo($Form1)If $nMsg == $GUI_EVENT_CLOSE Then Exit
[/autoit] [autoit][/autoit] [autoit]If $Cursor[4] = $Pic1 Then
[/autoit] [autoit][/autoit] [autoit]
Switch $nMsg
Case $GUI_EVENT_PRIMARYDOWN
GUICtrlSetImage($Pic1,@ScriptDir & "/btn_dn.bmp")Case $GUI_EVENT_PRIMARYUP
[/autoit]
GUICtrlSetImage($Pic1,@ScriptDir & "/btn_up.bmp")
EndSwitch
Else
GUICtrlSetImage($Pic1,@ScriptDir & "/btn_fs.bmp")
EndIf
WEnd
Gruss Shadowigor -
Ja so meine ich das, funktioniert aber so auch nicht
Ich erklärs nochmal richtig:
-Bild1 <- Normalzustand Pic-Control; Wenn Maus wieder losgelassen wird
-Bild2 <- Zeit, wenn Maus über Pic-Control
-Bild3 <- Zeit, wenn Button geklickt wird -
Ok ich glaube so sollte es funktionieren:
Spoiler anzeigen
[autoit]#include <GUIConstantsEx.au3>
[/autoit] [autoit][/autoit] [autoit]
#include <StaticConstants.au3>
#include <WindowsConstants.au3>#Region ### START Koda GUI section ### Form=
[/autoit] [autoit][/autoit] [autoit]
$Form1 = GUICreate("Patcher", 600, 400, -1, -1, $WS_POPUP)
$Pic7 = GUICtrlCreatePic(@ScriptDir & "/main.bmp", 0, 0, 600, 400)
GUICtrlSetState( -1, $GUI_DISABLE)
$Pic1 = GUICtrlCreatePic(@ScriptDir & "/btn_up.bmp", 467, 46, 123, 36)
$Dummy = GUICtrlCreateLabel ("", 0, 0, 600, 400, -1, $GUI_WS_EX_PARENTDRAG)
GUICtrlSetBkColor( -1, $GUI_BKCOLOR_TRANSPARENT)GUISetState(@SW_SHOW)
[/autoit] [autoit][/autoit] [autoit]
#EndRegion ### END Koda GUI section ###While Sleep (30)
[/autoit] [autoit][/autoit] [autoit]
$nMsg = GUIGetMsg()
$Cursor = GUIGetCursorInfo($Form1)If $nMsg == $GUI_EVENT_CLOSE Then Exit
[/autoit] [autoit][/autoit] [autoit]If $Cursor[4] = $Pic1 Then
[/autoit]
If $Cursor[2] Then
GUICtrlSetImage($Pic1,@ScriptDir & "/btn_dn.bmp")
Else
GUICtrlSetImage($Pic1,@ScriptDir & "/btn_up.bmp")
EndIf
Else
GUICtrlSetImage($Pic1,@ScriptDir & "/btn_fs.bmp")
EndIf
WEnd -
Es klappt Vielen vielen Dank!
-
Edit: Gibt es vielleicht eine Möglichkeit die Aktion (wenn man ein Control-Pic anklickt) erst auszuführen wenn man wieder die Maustaste loslässt?
-
Arbeite mit eine Schleife, frag einfach ab, ob _IsPressed('01') = False ist. (aus der Misc.au3)
[autoit]Do
[/autoit]
Sleep(10)
Until _IsPressed('01') = FalseEdit:
Ich habe ein altes Script von mir auf dem Rechner gefunden. Vielleicht hilft es dir ja:
(Bilder sind mit dabei :O) -
Danke werd ich mir mal anschauen