Aus einer _GDIPlus Grafik einen Button machen

  • Hey Leute,

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GDIPlus.au3>
    #include <StaticConstants.au3>
    #include <GUIConstants.au3>

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

    Const $width = 800
    Const $height = 600
    Global $background = @ScriptDir&"\schach.jpg"
    Global $startbutton = @ScriptDir&"\start.png"
    Global $figur = @ScriptDir&"\figur.gif"

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

    $hGUI = GUICreate ("Game",$width,$height)
    _GDIPlus_Startup()
    $start = _GDIPlus_ImageLoadFromFile($startbutton)
    $graphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    GUISetOnEvent ($GUI_EVENT_CLOSE,"ende")
    $backpic = GUICtrlCreatePic ($background,0,0,800,600)
    GUICtrlSetState ($backpic,$GUI_DISABLE)
    GUISetState (@SW_Show)
    $image = _GDIPlus_GraphicsDrawImage($graphic,$start,370,230)

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

    While 1
    $get = GUIGetMsg ()
    Switch $get
    Case $GUI_EVENT_CLOSE
    ende ()
    Case $image
    MsgBox (0,"GO","START!")
    EndSwitch
    Sleep (50)
    WEnd

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

    Func ende ()
    _GDIPlus_Shutdown ()
    _GDIPlus_GraphicsDispose($graphic)
    _GDIPlus_ImageDispose($start)
    Exit
    EndFunc

    [/autoit]

    Wie kann ich aus der _GDIPlus Grafik nen Button machen? Normal kann man mit der Art und Weise oben Bilder auf nen Klick abfragen, die einfach mit "Guictrlcreate ()" erschaffen wurden. Jedoch geht das nicht bei _GDIPlus Grafiken. Ich muss diesen button mit _GDIPLus machen, weil ne .png grafik nicht von GuiCtrlCreatePic unterstützt wird....

    Danke

    Einmal editiert, zuletzt von Manlius (28. Februar 2011 um 17:43)

  • Es gibt, soweit ich weiß, keine direkte Abfrage ob ein GDIPlus Objekt angeklickt wird.
    Es gibt die Möglichkeit, unter das zu überprüfende Objekt ein Label etc zu legen, und einen klick auf dieses zu benutzen.
    Eine andere Methode ist die Überprüfung des Cursors in der GUI. Dabei wird überprüft ob der Cursor auf eine bestimmte Stelle in der GUI klickt.
    Beispiel:

    [autoit]

    #include <GUIConstantsEx.au3>
    #include <GDIPlus.au3>
    #include <StaticConstants.au3>
    #include <GUIConstants.au3>

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

    Const $width = 800
    Const $height = 600

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

    $hGUI = GUICreate ("Game",$width,$height)
    GUISetState ()
    _GDIPlus_Startup()
    $graphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    _GDIPlus_GraphicsDrawRect ($graphic, 0, 0, 50, 50)

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

    While 1
    $cursor=GUIGetCursorInfo ()
    If not IsArray ($cursor) Then ExitLoop
    If $cursor[0] >= 0 and $cursor[0] <= 50 and $cursor[1] >= 0 and $cursor[1] <= 50 and $cursor[2] Then
    Msgbox (0,"KLICK", "Du hast du das rechteck geklickt")
    Exit
    EndIf
    WEnd

    [/autoit]

    mfg BB

    "IF YOU'RE GOING TO KILL IT
    OPEN SOURCE IT!"

    by Phillip Torrone

    Zitat von Shoutbox

    [Heute, 11:16] Andy: ....böseböseböseböse....da erinnere ich mich daran, dass man den Puschelschwanz eines KaRnickels auch "Blume" nennt....ob da eins zum anderen passt? :rofl: :rofl: :rofl: :rofl:

    https://autoit.de/index.php?page…leIt#post251138

    Neon Snake