Mehrere Bilder in eine GUI > Befehl

  • Guten Tag,

    ich habe mir vor einigen Tagen eine GUI mit 3 Bildern erstellt.

    Ich wollte, dass die Bilder wie Buttons funktionen also habe ich ihnen Funktionen zugewiesen.

    Mit einem Bild habe ich es zuerst getestet und es funktionierte wunderbar. Doch wenn ich alle Bilder nehme, dann funktioniert es nicht mehr, da ich es dann nicht mehr anklicken kann.

    Ich denke mal, dass es am Hintergrundbild liegt oder woran liegt es?

    * Ich habe nichts falsch gemacht.

  • also ich würde dir empfehlen, wenn man eine GUI aus Bildern erstellt, GDI+ zu benutzen. Das scheint am Anfang zwar schwierig, lässt sich jedoch leicht lernen. Mit GDI+ kann man Bilder, Rechtecke, Kreise auf die GUI zeichnen. Durch das Abfangen der Mauskoordinaten kann man dann auch ein Bild wie ein Button funktionieren lassen.

    Hier ein kleines Beispiel:

    Spoiler anzeigen
    [autoit]

    #include <GuiConstantsEx.au3>
    #include <GDIPlus.au3>

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

    _GDIPlus_Startup()
    Global $h=200, $w=200
    Global $hGui = GUICreate("Eine Test GUI mit GDI+", $w, $h)
    Global $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGui)
    Global $Bitmap = _GDIPlus_BitmapCreateFromGraphics($w, $h, $hGraphic)
    Global $GDI_Buffer = _GDIPlus_ImageGetGraphicsContext($Bitmap)
    Global $ButtonBild = _GDIPlus_ImageLoadFromFile(@ScriptDir&"\button.png")
    GUISetState(@SW_SHOW)

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

    Opt("GUIOnEventMode", 1)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")

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

    While 1
    _GDIPlus_GraphicsClear($GDI_Buffer, 0xFF000000)
    _GDIPlus_GraphicsDrawImage($GDI_Buffer,$ButtonBild,10,10)
    _GDIPlus_GraphicsDrawImage($hGraphic, $Bitmap, 0, 0)
    $mouse=GUIGetCursorInfo($hGui)
    if $mouse[0]>10 and $mouse[0]<10+50 and $mouse[1]>10 and $mouse[1]<10+50 and $mouse[2]=1 then MsgBox(0, "Test", "Der Button wurde geklickt!") ; Buttongröße 50x50
    WEnd

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

    Func _Exit()
    _GDIPlus_ImageDispose($ButtonBild)
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_BitmapDispose($Bitmap)
    _GDIPlus_ImageDispose($GDI_Buffer)
    _GDIPlus_Shutdown()
    Exit
    EndFunc

    [/autoit]

    mfg
    Developer30

    "Je mehr Käse, desto mehr Löcher; je mehr Löcher, desto weniger Käse. Ergo: Je mehr Käse, desto weniger Käse. 8| "
    "Programmers never die: they just GOSUB without RETURN"
    "I tried to change the world but I couldn't find the source code."

  • Ich denke mal, dass es am Hintergrundbild liegt oder woran liegt es?

    * Ich habe nichts falsch gemacht.


    Du scheinst eine resistenter Hilfe-Verweigerer zu sein:

    Zitat von dt. Hilfe Bemerkungen zu GUICtrlCreatePic

    Wird ein Bild als Hintergrundbild genutzt, während die anderen Controls dieses quasi überlappen, so ist es wichtig, das Bild-Control zu deaktivieren und es nach den anderen Controls zu erstellen: GuiCtrlSetState(-1,$GUI_DISABLE).

    also machst du grundsätzliches falsch. Anstatt wegen jeder Kleinigkeit das Forum zu bemühen, solltest du dich durch die Hilfe durcharbeiten, damit du die Grundlagen verstehst. Spätestens wenn man ein Problem hat sollte man die beteilgten Funktionen die man noch nicht kennt in der Hilfe nachschlagen. Da du anscheinend dazu nicht bereit bist empfehle ich dir ein anderes Hobby zu suchen und deine BOTs und Tools als Auftragsprogrammierung zu vergeben,

    mfg autoBert

  • Danke Autobert du sprichst mir aus der Seele
    ich bin auch nicht der held in AutoIt nur mit der Hilfe kommt man ein gutes stück voran
    sry musste ich mal loswerden X(