Rollover Button aus Bildern?

  • Hallo Leutz.

    Mich beschäftigt schon seit langem die frage, wie man mit Bildern einen Down(Maus ist nicht drauf), Rollover(Maus fährt drüber) und Click(Mouse klickt den Button) macht.

    Ich habe mir schon verschiedene Möglichkeiten überlegt, aber keine hat bisher geklappt.

    Wäre Dankbar über eure Hilfe.

    Mario2323

  • Die MouseHover-UDF funktioniert ganz gut. Hab mal ein kleines Beispiel zusammengewürfelt. Das sollte die weiterhelfen.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ButtonConstants.au3>
    #include '_MouseHover.au3'

    [/autoit] [autoit][/autoit] [autoit]

    GUICreate("My GUI")
    $Button = GUICtrlCreateButton("my picture button", 10, 20, 40, 40, $BS_ICON)
    GUICtrlSetImage(-1, "shell32.dll", 22)

    [/autoit] [autoit][/autoit] [autoit]

    _HoverAddCtrl($Button)
    AdlibEnable("_ProcessHover", 50)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _HoverFound($ControlID)
    Switch $ControlID
    Case $Button
    GUICtrlSetImage(-1, "shell32.dll", 23)
    EndSwitch
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _HoverLost($ControlID)
    Switch $ControlID
    Case $Button
    GUICtrlSetImage(-1, "shell32.dll", 22)
    EndSwitch
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _ProcessHover()
    $ControlID = _HoverCheck()
    If IsArray($ControlID) Then
    If $ControlID[0] = "AcquiredHover" Then
    _HoverFound($ControlID[1])
    Else
    _HoverLost($ControlID[1])
    EndIf
    EndIf
    EndFunc

    [/autoit]
  • Wieso testest du es nicht einfach?

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <ButtonConstants.au3>
    #include '_MouseHover.au3'

    [/autoit] [autoit][/autoit] [autoit]

    GUICreate("My GUI")
    $Button = GUICtrlCreateButton("my picture button", 10, 20, 40, 40, $BS_ICON)
    GUICtrlSetImage(-1, "shell32.dll", 22)

    [/autoit] [autoit][/autoit] [autoit]

    $Pic = GUICtrlCreatePic(@SystemDir & "\oobe\images\backup.jpg", 80, 80,32,32)

    [/autoit] [autoit][/autoit] [autoit]

    _HoverAddCtrl($Button)
    _HoverAddCtrl($Pic)
    AdlibEnable("_ProcessHover", 50)

    [/autoit] [autoit][/autoit] [autoit]

    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Then ExitLoop
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _HoverFound($ControlID)
    Switch $ControlID
    Case $Button
    GUICtrlSetImage($Button, "shell32.dll", 23)
    Case $Pic
    GUICtrlSetImage($Pic, @SystemDir & "\oobe\images\backover.jpg")
    EndSwitch
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _HoverLost($ControlID)
    Switch $ControlID
    Case $Button
    GUICtrlSetImage($Button, "shell32.dll", 22)
    Case $Pic
    GUICtrlSetImage($Pic, @SystemDir & "\oobe\images\backup.jpg")
    EndSwitch
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _ProcessHover()
    $ControlID = _HoverCheck()
    If IsArray($ControlID) Then
    If $ControlID[0] = "AcquiredHover" Then
    _HoverFound($ControlID[1])
    Else
    _HoverLost($ControlID[1])
    EndIf
    EndIf
    EndFunc

    [/autoit]