1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. Crys

Beiträge von Crys

  • PNG in GUI einbauen

    • Crys
    • 21. April 2010 um 16:15

    Hier noch mal eine offenen Fragen, mit Bilder dazu:

    Zitat von Crys


    Wenn ich die Grafik, wie oben beschrieben, verschwinden lasse, dann bleibt dennoch ein Rückstand dieser Grafik übrig!
    Es wird alles gelöscht, wo sich auf der nächsten Seite (Räumlich) eine eine Gruppe befindet! Zwischen den Gruppen bleibt die Grafik bestehen!
    Wieso das? Wie kann ich das beheben?


    [Blockierte Grafik: http://saved.im/mtcxmdq5dwhl_vs/autoit2.jpg]
    Zusehen unter der Gruppe 'Quelle'!

    Zitat von Crys

    Und wenn ich eine PNG-Grafik mit Alpha-Werten (halb transparent) habe, dann werden diese Grafiken so oft geladen (so scheint es zumindest), dass diese Alpha-Werte nicht mehr gut aussehen ... dass die Alpha-Werte nicht mehr Transparent sind!
    Was kann ich dagegen unternehmen?


    [Blockierte Grafik: http://saved.im/mtcxmdq4ymn4_vs/autoit1.jpg]
    Das "CK"-Logo sollte eigentlich so wie in meinen Avatar aussehen! Die PNG-Datei ist die selbe!

    Und hier der aktuelle Quelltext:

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #Include <WinAPI.au3>

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

    ; Allgemeine Variablen
    $version = "v0.4.1 _ 18.04.2010"
    $titel = "AutoCDaufHDD"
    ; ...

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

    ; ### Start der GUI Eigenschaften ###
    $GUI = GUICreate("AutoCDaufHDD", 401, 411, -1, -1)

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

    ; Quelle
    $Group1 = GUICtrlCreateGroup("Quelle:", 8, 5, 385, 50)
    $quelle = GUICtrlCreateInput("", 16, 21, 369, 21)

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

    ; Ziel
    $Group2 = GUICtrlCreateGroup("Ziel:", 8, 60, 385, 140)
    $ziel = GUICtrlCreateInput("", 16, 76, 369, 21)
    $sub = GUICtrlCreateCheckbox("Soll ein Unterordner je CD angelegt werden?", 16, 100, 329, 25)
    $sub_datum = GUICtrlCreateCheckbox("Mit Datum und Uhrzeit?", 28, 125, 233, 25)
    $bar = GUICtrlCreateCheckbox("Soll ein Kopier-Fortschrits-Blaken angezeigt werden?", 16, 150, 280, 25)
    $text_bar = GUICtrlCreateLabel("(Nur mit NEIN koennen mehrere Prozesse gleichzeitig ausgefuehrt werden!)", 16, 175, 359, 17)

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

    ; Logbuch
    $Group4 = GUICtrlCreateGroup("Logbuch:", 8, 205, 385, 90)
    $Checkbox1 = GUICtrlCreateCheckbox("Soll ein Logbuch angelegt angelegt werden?", 16, 220, 329, 25)
    $Radio1 = GUICtrlCreateRadio("Als *.log Datei speichern!", 28, 245, 289, 17)
    GuiCtrlSetState($Radio1, $GUI_CHECKED)
    $Radio2 = GUICtrlCreateRadio("Als *.csv Datei speichern!", 28, 260, 289, 25)

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

    ; Status
    $Group3 = GUICtrlCreateGroup("Status:", 8, 300, 385, 60)
    $Nein = GUICtrlCreateLabel("Nein", 216, 324, 30, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xFF0000)
    $Label1 = GUICtrlCreateLabel("Unbekannt", 314, 333, 66, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0xC0C0C0)
    $Label2 = GUICtrlCreateLabel("Ja", 334, 310, 17, 17)
    GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
    GUICtrlSetColor(-1, 0x008000)
    $text3 = GUICtrlCreateLabel("Quelle ist vom Typ:", 16, 340, 94, 17)
    $Label3 = GUICtrlCreateLabel("Quelle gefunden?", 16, 320, 88, 17)

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

    ; Knöpfe unten
    $Button2 = GUICtrlCreateButton("Abbrechen", 7, 370, 153, 30)
    $Button3 = GUICtrlCreateButton("Info/Hilfe", 165, 370, 80, 30)
    $Button4 = GUICtrlCreateButton("Zurück!", 165, 370, 80, 30)
    GuiCtrlSetState($Button4, $GUI_HIDE)
    $Button1 = GUICtrlCreateButton("Kopieren starten!", 248, 370, 145, 30)

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

    ; Impressum
    DirCreate (@TempDir&"\"&$titel_hash)
    $pfad_bild1 = @TempDir&"\"&$titel_hash&"\logo1.png"
    FileInstall("logo1.png", $pfad_bild1, 1)
    $pfad_bild2 = @TempDir&"\"&$titel_hash&"\logo2.png"
    FileInstall("logo2.png", $pfad_bild2, 1)

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

    _GDIPlus_StartUp()
    $handle_bild1 = _GDIPlus_ImageLoadFromFile($pfad_bild1)
    $handle_bild2 = _GDIPlus_ImageLoadFromFile($pfad_bild2)
    $GUI_grafik = _GDIPlus_GraphicsCreateFromHWND($GUI)

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

    $Label4 = GUICtrlCreateLabel("titel", 208, 8, 20, 17, $SS_CENTER)
    $Label5 = GUICtrlCreateLabel("version", 208, 32, 38, 17, $SS_CENTER)
    $Label6 = GUICtrlCreateLabel("Datum", 208, 56, 35, 17, $SS_CENTER)
    $Label7 = GUICtrlCreateLabel("Autor: Chris ", 208, 80, 104, 17)
    $Label8 = GUICtrlCreateLabel("Freigegeben ...!", 208, 104, 147, 65)
    $Label9 = GUICtrlCreateLabel("Nach einer neuerer Version suchen:", 8, 168, 183, 17)
    $Button5 = GUICtrlCreateButton("Button4", 8, 184, 185, 25)
    $Label10 = GUICtrlCreateLabel("Auf der Seite des Autors schauen:", 6, 234, 165, 17)
    $Button6 = GUICtrlCreateButton("Button4", 6, 250, 185, 25)
    $Label11 = GUICtrlCreateLabel("Kontakt mit dem Autor aufnehmen:", 9, 299, 167, 17)
    $Button7 = GUICtrlCreateButton("Button4", 9, 315, 185, 25)

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

    GuiCtrlSetState($Label4, $GUI_HIDE)
    GuiCtrlSetState($Label5, $GUI_HIDE)
    GuiCtrlSetState($Label6, $GUI_HIDE)
    GuiCtrlSetState($Label7, $GUI_HIDE)
    GuiCtrlSetState($Label8, $GUI_HIDE)
    GuiCtrlSetState($Label9, $GUI_HIDE)
    GuiCtrlSetState($Label10, $GUI_HIDE)
    GuiCtrlSetState($Label11, $GUI_HIDE)
    GuiCtrlSetState($Button5, $GUI_HIDE)
    GuiCtrlSetState($Button6, $GUI_HIDE)
    GuiCtrlSetState($Button7, $GUI_HIDE)

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

    GUISetState(@SW_SHOW)

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

    ; ### Start der GUI-Anzeige ###
    While 1
    While 1
    Switch GUIGetMsg()
    ; Wenn man Impressum klickt
    Case $Button3
    GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")
    GuiCtrlSetState($Group1, $GUI_HIDE)
    GuiCtrlSetState($quelle, $GUI_HIDE)
    GuiCtrlSetState($Group2, $GUI_HIDE)
    GuiCtrlSetState($ziel, $GUI_HIDE)
    GuiCtrlSetState($sub, $GUI_HIDE)
    GuiCtrlSetState($sub_datum, $GUI_HIDE)
    GuiCtrlSetState($bar, $GUI_HIDE)
    GuiCtrlSetState($text_bar, $GUI_HIDE)
    GuiCtrlSetState($Group4, $GUI_HIDE)
    GuiCtrlSetState($Checkbox1, $GUI_HIDE)
    GuiCtrlSetState($Radio1, $GUI_HIDE)
    GuiCtrlSetState($Radio2, $GUI_HIDE)
    GuiCtrlSetState($Group3, $GUI_HIDE)
    GuiCtrlSetState($Nein, $GUI_HIDE)
    GuiCtrlSetState($Label1, $GUI_HIDE)
    GuiCtrlSetState($Label2, $GUI_HIDE)
    GuiCtrlSetState($text3, $GUI_HIDE)
    GuiCtrlSetState($Label3, $GUI_HIDE)
    GuiCtrlSetState($Button4, $GUI_SHOW)
    GuiCtrlSetState($Button3, $GUI_HIDE)

    GuiCtrlSetState($Label4, $GUI_SHOW)
    GuiCtrlSetState($Label5, $GUI_SHOW)
    GuiCtrlSetState($Label6, $GUI_SHOW)
    GuiCtrlSetState($Label7, $GUI_SHOW)
    GuiCtrlSetState($Label8, $GUI_SHOW)
    GuiCtrlSetState($Label9, $GUI_SHOW)
    GuiCtrlSetState($Label10, $GUI_SHOW)
    GuiCtrlSetState($Label11, $GUI_SHOW)
    GuiCtrlSetState($Button5, $GUI_SHOW)
    GuiCtrlSetState($Button6, $GUI_SHOW)
    GuiCtrlSetState($Button7, $GUI_SHOW)
    ; Wenn man Zurück im Impressum klickt
    Case $Button4
    GUIRegisterMsg($WM_PAINT, "crys_png_hide")
    GuiCtrlSetState($Group1, $GUI_SHOW)
    GuiCtrlSetState($quelle, $GUI_SHOW)
    GuiCtrlSetState($Group2, $GUI_SHOW)
    GuiCtrlSetState($ziel, $GUI_SHOW)
    GuiCtrlSetState($sub, $GUI_SHOW)
    GuiCtrlSetState($sub_datum, $GUI_SHOW)
    GuiCtrlSetState($bar, $GUI_SHOW)
    GuiCtrlSetState($text_bar, $GUI_SHOW)
    GuiCtrlSetState($Group4, $GUI_SHOW)
    GuiCtrlSetState($Checkbox1, $GUI_SHOW)
    GuiCtrlSetState($Radio1, $GUI_SHOW)
    GuiCtrlSetState($Radio2, $GUI_SHOW)
    GuiCtrlSetState($Group3, $GUI_SHOW)
    GuiCtrlSetState($Nein, $GUI_SHOW)
    GuiCtrlSetState($Label1, $GUI_SHOW)
    GuiCtrlSetState($Label2, $GUI_SHOW)
    GuiCtrlSetState($text3, $GUI_SHOW)
    GuiCtrlSetState($Label3, $GUI_SHOW)
    GuiCtrlSetState($Button4, $GUI_HIDE)
    GuiCtrlSetState($Button3, $GUI_SHOW)

    GuiCtrlSetState($Label4, $GUI_HIDE)
    GuiCtrlSetState($Label5, $GUI_HIDE)
    GuiCtrlSetState($Label6, $GUI_HIDE)
    GuiCtrlSetState($Label7, $GUI_HIDE)
    GuiCtrlSetState($Label8, $GUI_HIDE)
    GuiCtrlSetState($Label9, $GUI_HIDE)
    GuiCtrlSetState($Label10, $GUI_HIDE)
    GuiCtrlSetState($Label11, $GUI_HIDE)
    GuiCtrlSetState($Button5, $GUI_HIDE)
    GuiCtrlSetState($Button6, $GUI_HIDE)
    GuiCtrlSetState($Button7, $GUI_HIDE)
    ; Wenn man Kopieren klickt
    Case $Button1
    ExitLoop
    ; Wenn man Abbrechen klickt
    Case $Button2
    crys_ende()
    Exit
    ; Wenn man X klickt
    Case $GUI_EVENT_CLOSE
    crys_ende()
    Exit
    EndSwitch

    ; ...
    WEnd
    ; ### Start der kopieren Befehle ###
    ; ...

    WEnd

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

    Func MY_WM_PAINT($hWnd, $Msg, $wParam, $lParam)
    _WinAPI_RedrawWindow($gui, 0, 0, $RDW_UPDATENOW)
    _GDIPlus_GraphicsDrawImage($gui_grafik, $handle_bild1, 10, 10)
    _GDIPlus_GraphicsDrawImage($gui_grafik, $handle_bild2, 200, 250)
    _WinAPI_RedrawWindow($gui, 0, 0, $RDW_VALIDATE)
    Return $GUI_RUNDEFMSG
    EndFunc

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

    Func crys_png_hide($hWnd, $Msg, $wParam, $lParam)
    _WinAPI_RedrawWindow($gui, 0, 0, $RDW_UPDATENOW)
    _GDIPlus_GraphicsClear($handle_bild1)
    _GDIPlus_GraphicsClear($handle_bild2)
    _WinAPI_RedrawWindow($gui, 0, 0, $RDW_VALIDATE)
    Return $GUI_RUNDEFMSG
    EndFunc

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

    Func crys_ende()
    ; Freigeben der Ressourcen
    _GDIPlus_GraphicsDispose($gui_grafik)
    _GDIPlus_ImageDispose($handle_bild1)
    _GDIPlus_ImageDispose($handle_bild2)
    _GDIPlus_ShutDown()

    ; Löschen der Temp.-Dateien
    DirRemove(@TempDir&"\"&$titel_hash, 1)
    EndFunc

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

    ; ### ENDE ###

    [/autoit]

    Wie löse ich die Probleme?

    thx

  • PNG in GUI einbauen

    • Crys
    • 20. April 2010 um 16:06

    @ H2112:
    Danke! Ich glaub jetzt versteh ich das Konzept langsam ^^


    KODA kenne und verwende ich auch, aber es ist nicht so übersichtlich oder vielseitig wie das Virtual Studio ... aber will ich auch gar nicht vergleichen, dass ist einfach eine andere Liga!


    Noch ein Problem:
    Wenn ich die Grafik, wie oben beschrieben, verschwinden lasse, dann bleibt dennoch ein Rückstand dieser Grafik übrig!
    Es wird alles gelöscht, wo sich auf der nächsten Seite (Räumlich) eine eine Gruppe befindet! Zwischen den Gruppen bleibt die Grafik bestehen!
    Wieso das? Wie kann ich das beheben?

    Und wenn ich eine PNG-Grafik mit Alpha-Werten (halb transparent) habe, dann werden diese Grafiken so oft geladen (so scheint es zumindest), dass diese Alpha-Werte nicht mehr gut aussehen ... dass die Alpha-Werte nicht mehr Transparent sind!
    Was kann ich dagegen unternehmen?

    thx

  • PNG in GUI einbauen

    • Crys
    • 19. April 2010 um 17:22

    Wenn ich im Visual Studio mit c# arbeite, geht mir die GUI wirklich leichter von der Hand ^^


    Noch mal ne Frage:
    Wie kann ich eingebunden Bilder nun verstecken, ala "GuiCtrlSetState($png_grafik, $GUI_HIDE)"?

    Spoiler anzeigen
    [autoit]

    #include <ButtonConstants.au3>
    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #Include <WinAPI.au3>

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

    ; Allgemeine Variablen
    ; ...
    $titel_hash = "test_me_0232"

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

    ; ### Start der GUI Eigenschaften ###
    $GUI = GUICreate("AutoCDaufHDD", 401, 411, 385, 322)

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

    ; Impressum
    DirCreate (@TempDir&"\"&$titel_hash)
    $pfad_bild1 = @TempDir&"\"&$titel_hash&"\logo1.png"
    FileInstall("logo1.png", $pfad_bild1, 1)
    $pfad_bild2 = @TempDir&"\"&$titel_hash&"\logo2.png"
    FileInstall("logo2.png", $pfad_bild2, 1)

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

    _GDIPlus_StartUp()
    $handle_bild1 = _GDIPlus_ImageLoadFromFile($pfad_bild1)
    $handle_bild2 = _GDIPlus_ImageLoadFromFile($pfad_bild2)
    $GUI_grafik = _GDIPlus_GraphicsCreateFromHWND($GUI)
    $x = GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")
    GuiCtrlSetState($WM_PAINT, $GUI_HIDE)

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

    ; ...

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

    ; Knöpfe unten
    $Button2 = GUICtrlCreateButton("Abbrechen", 7, 370, 153, 30)
    $Button3 = GUICtrlCreateButton("Info/Hilfe", 165, 370, 80, 30)
    $Button4 = GUICtrlCreateButton("Zurück!", 165, 370, 80, 30)
    GuiCtrlSetState($Button4, $GUI_HIDE)
    $Button1 = GUICtrlCreateButton("Kopieren starten!", 248, 370, 145, 30)

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

    GUISetState(@SW_SHOW)

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

    ; ### Start der GUI-Anzeige ###
    While 1
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    ; Wenn man Impressum klickt
    Case $Button3
    ; ...
    GuiCtrlSetState($Button4, $GUI_SHOW)
    GuiCtrlSetState($Button3, $GUI_HIDE)
    ; Wenn man Zurück im Impressum klickt
    Case $Button4
    ; ...
    GuiCtrlSetState($Button4, $GUI_HIDE)
    GuiCtrlSetState($Button3, $GUI_SHOW)
    ; Wenn man Kopieren klickt
    Case $Button1
    ExitLoop
    ; Wenn man Abbrechen klickt
    Case $Button2
    crys_ende()
    Exit
    ; Wenn man X klickt
    Case $GUI_EVENT_CLOSE
    crys_ende()
    Exit
    EndSwitch
    WEnd

    ; ### Start der kopiert Befehle ###
    ; ...

    WEnd

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

    Func MY_WM_PAINT($hWnd, $Msg, $wParam, $lParam)
    _WinAPI_RedrawWindow($gui, 0, 0, $RDW_UPDATENOW)
    _GDIPlus_GraphicsDrawImage($gui_grafik, $handle_bild1, 10, 10)
    _GDIPlus_GraphicsDrawImage($gui_grafik, $handle_bild2, 50, 50)
    _WinAPI_RedrawWindow($gui, 0, 0, $RDW_VALIDATE)
    Return $GUI_RUNDEFMSG
    EndFunc

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

    Func crys_ende()
    ; Freigeben der Ressourcen
    _GDIPlus_GraphicsDispose($gui_grafik)
    _GDIPlus_ImageDispose($handle_bild1)
    _GDIPlus_ImageDispose($handle_bild2)
    _GDIPlus_ShutDown()
    ; Löschen der Temp.-Dateien
    DirRemove(@TempDir&"\"&$titel_hash, 1)
    EndFunc

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

    ; ### ENDE ###

    [/autoit]


    Ich möchte zwischen zwei Seiten hin und her springen und nur auf einer Seite der PNGs haben ...

  • PNG in GUI einbauen

    • Crys
    • 19. April 2010 um 14:52

    Oh man ... danke! :thumbup:
    Da bin ich wohl auf dem Schlauch gestanden ...

    Ich finde, das AutoIt für einfach Windows Anwendungen genial ist, solange man keine GUI braucht! (oder nur ein OK-Fenster ^^)

  • PNG in GUI einbauen

    • Crys
    • 19. April 2010 um 14:18

    Dank dir!
    So weit so gut ... komm aber nicht wirklich weiter ...

    Wie schaffe ich es mehrere PNG-Bilder einzubauen?
    (alle Bilder haben unterschiedliche Namen, Pfade und werden wo anders hin platziert!)

    So geht es nicht:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #Include <WinAPI.au3>

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

    $bild1 = "Crys1.png"
    FileInstall($bild1, @TempDir&"\"&$bild1)
    $pfad_bild1 = @TempDir&"\"&$bild1

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

    $bild2 = "Crys2.png"
    FileInstall($bild2, @TempDir&"\"&$bild2)
    $pfad_bild2 = @TempDir&"\"&$bild2

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

    $gui = GUICreate("PNG Bild", 539, 429, 192, 124)

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

    _GDIPlus_StartUp()
    $handle_bild1 = _GDIPlus_ImageLoadFromFile($pfad_bild1)
    $gui_grafik = _GDIPlus_GraphicsCreateFromHWND($gui)
    GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT1")

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

    $handle_bild2 = _GDIPlus_ImageLoadFromFile($pfad_bild2)
    $gui_grafik = _GDIPlus_GraphicsCreateFromHWND($gui)
    GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT2")

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

    GUISetState(@SW_SHOW)

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

    ; Loop until user exits
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    ; Draw PNG image
    Func MY_WM_PAINT1($hWnd, $Msg, $wParam, $lParam)
    _WinAPI_RedrawWindow($gui, 0, 0, $RDW_UPDATENOW)
    _GDIPlus_GraphicsDrawImage($gui_grafik, $handle_bild1, 10, 10)
    _WinAPI_RedrawWindow($gui, 0, 0, $RDW_VALIDATE)
    Return $GUI_RUNDEFMSG
    EndFunc

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

    ; Draw PNG image
    Func MY_WM_PAINT2($hWnd, $Msg, $wParam, $lParam)
    _WinAPI_RedrawWindow($gui, 0, 0, $RDW_UPDATENOW)
    _GDIPlus_GraphicsDrawImage($gui_grafik, $handle_bild2, 50, 50)
    _WinAPI_RedrawWindow($gui, 0, 0, $RDW_VALIDATE)
    Return $GUI_RUNDEFMSG
    EndFunc

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

    _GDIPlus_GraphicsDispose($gui_grafik)
    _GDIPlus_ImageDispose($handle_bild1)
    _GDIPlus_ImageDispose($handle_bild2)

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

    _GDIPlus_ShutDown()

    [/autoit]
  • PNG in GUI einbauen

    • Crys
    • 19. April 2010 um 11:51

    Also ich weiß, ich hab ein verdammt banales Problem, bei dem sich einige von euch sicher die Hände über der Kopf schlagen werden!
    Ich bin einfach aus der Übung mit AutoIt und muss auf die schnelle ein kleines Programm für jemanden schreiben ...

    Ich will einfach ne GUI erstellen, in der ich das PNG-Bild frei platzieren und die Größe ändern kann!
    So geht es ja leider bei AutoIt nicht für png-Grafiken: "GUICtrlCreatePic($png_bild, 8, 40, 513, 377)"

    Ich hab mal was aus der Hilfe, so weit ich es kann, an meine Wünsche angepasst:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <GDIPlus.au3>
    #Include <WinAPI.au3>

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

    Global $hGUI, $hImage, $hGraphic, $hImage
    $bild = "Crys1.png"

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

    ; Create GUI
    $hGUI = GUICreate("Show PNG", 250, 250)

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

    ; Load PNG image
    _GDIPlus_StartUp()
    $hImage = _GDIPlus_ImageLoadFromFile($bild)
    $hGraphic = _GDIPlus_GraphicsCreateFromHWND($hGUI)
    $Label1 = GUICtrlCreateLabel("PNG Bild:", 8, 8, 50, 17)

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

    GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT")
    GUISetState()

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

    ; Loop until user exits
    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    ; Draw PNG image
    Func MY_WM_PAINT($hWnd, $Msg, $wParam, $lParam)
    _WinAPI_RedrawWindow($hGUI, 0, 0, $RDW_UPDATENOW)
    _GDIPlus_GraphicsDrawImage($hGraphic, $hImage, 0, 0)
    _WinAPI_RedrawWindow($hGUI, 0, 0, $RDW_VALIDATE)
    Return $GUI_RUNDEFMSG
    EndFunc

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

    ; Clean up resources
    _GDIPlus_GraphicsDispose($hGraphic)
    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_ShutDown()

    [/autoit]


    Wie mach ich es, das ich das Bild frei platzieren und die Größe ändern kann?

    Ist der 'Clean up resources' Teil nötig?

    thx

  • Details unter Eigenschaften ändern

    • Crys
    • 22. März 2009 um 16:36

    @ tobi_girst
    Das wusste ich auch, ist aber nicht unbedingt einfacher ;)

    Zitat von BugFix

    Das sind Anweisungen für den Interpreter, wieso soll das "schön" aussehen? - Willst du damit zur Miss-Skript-Wahl oder so? :D

    Ja, genau ^^
    Ne, hab oben im Skript bei allen Sprachen immer meinen Header stehen über alle wichtigen Informationen des Skrips .. und jetzt ist der Header eben erst nach ner halben Seite!

  • Details unter Eigenschaften ändern

    • Crys
    • 22. März 2009 um 14:55

    thx

    Der legt dann immer ganz oben in der Datei ein paar Zeilen an in den dann die Daten stehen ... das ist nicht schön!
    Geht das nicht auch anders?

    Und außerdem zeigt bei mit nur die Version, Copyright und Beschreibung Wirkung! Wenn ich in den anderen Zeilen was eingebe oder selber etwas erfinde wird das nicht in den Eigenschafen angezeigt ...

  • Details unter Eigenschaften ändern

    • Crys
    • 22. März 2009 um 13:24

    Hi,

    [Blockierte Grafik: http://saved.im/otg3mzy0adm0_vs/details.jpg]

    Ich habe schon ein paar Autoit Programme geschrieben und würde gerne etwas unter Details in den Eigenschaften eintragen!
    Wie kann ich das bei einer kompilierten Anwendung machen?

    Das ich da z.B. meinen Namen eintrage, das erstell Datum, die Version, ne Programm Beschreibung, ...

    thx

  • GUI veränderbar machen

    • Crys
    • 21. März 2009 um 13:22

    Danke dir! :thumbup:
    Ist jetzt gelöst ...

  • GUI veränderbar machen

    • Crys
    • 21. März 2009 um 11:59
    Zitat von ChaosKeks

    Es geht einfacher als du vllt. denkst ;P

    thx
    Hast recht, ist einfach als ich gedacht habe! 8)

    Jetzt hab ich aber noch ein Problem:
    Beim Radio Gruppe brauch ich z.B. zwei Inputboxen ... wie kann ich bei den übrigen die zweite ausblenden lassen?

  • GUI veränderbar machen

    • Crys
    • 20. März 2009 um 23:37

    Sry, hab ich vergessen!
    Habs oben gefixed!

    Die include Dateien dürftest du aber alle haben ...

  • GUI veränderbar machen

    • Crys
    • 20. März 2009 um 22:37

    Hi,
    Bin ganz neu hier und hoffe das ich mich nicht gleich köpft wenn ich euch was extrem simples frage ...

    [Blockierte Grafik: http://saved.im/otg2njjxyzfq_vs/autoit1.png]

    Ich hab hier ein kleines Programm zum senden von "net send ..." Befehlen entworfen und habe Probleme mit der Grafischen Oberfläche!
    Ich möchte je nach dem welcher Radiobutton gedrückt ist, das ein anderer Inhalt im Einstellungen Fenster ist!
    Wie mache ich das?

    Mein meinen Aktuellen Versuchen flackert die Box nur oder passiert gar nichts!

    Hier mein Quelltext der GUI:

    Spoiler anzeigen
    [autoit]

    $titel = "Nachrichtendienst"
    $schrift = "Cambria"
    $size = 22
    $subschrift = "Calibri"
    $subsize = 10

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

    #include <ButtonConstants.au3>
    #include <StaticConstants.au3>
    #include <WindowsConstants.au3>
    #include <GUIConstants.au3>

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

    Opt("GUICoordMode", 1)
    GUICreate($titel, 461, 401, -1, -1, BitOR($WS_SYSMENU,$WS_CAPTION,$WS_POPUP,$WS_POPUPWINDOW,$WS_BORDER,$WS_CLIPSIBLINGS))
    GUISetFont($subsize, 400, 0, $subschrift)

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

    ; Haupt- Auswahlfenster
    $ort_ = GUICtrlCreateGroup(" Nachrichten senden an ... ", 32, 72, 185, 177, $BS_CENTER)
    GUICtrlSetFont(-1, $subsize, 400, 0, $subschrift)
    $ort_alle = GUICtrlCreateRadio("Alle", 48, 96, 161, 17, BitOR($BS_AUTORADIOBUTTON,$BS_LEFT))
    GUICtrlSetState(-1, $GUI_CHECKED)
    $ort_gruppe = GUICtrlCreateRadio("eine Gruppe von Rechnern", 48, 144, 161, 17, BitOR($BS_AUTORADIOBUTTON,$BS_LEFT))
    $ort_rz = GUICtrlCreateRadio("einen ganzen Rechenraum", 48, 120, 161, 17, BitOR($BS_AUTORADIOBUTTON,$BS_LEFT))
    $ort_pc = GUICtrlCreateRadio("einen einzigen Rechner", 48, 168, 161, 17, BitOR($BS_AUTORADIOBUTTON,$BS_LEFT))

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

    ; Senden Bereich
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    GUICtrlCreateLabel($titel, 48, 24, 367, 38, $SS_CENTER)
    GUICtrlSetFont(-1, $size, 400, 0, $schrift)
    $nachricht = GUICtrlCreateInput("Deine Nachricht ...", 150, 296, 283, 21)
    GUICtrlSetFont(-1, $subsize, 400, 0, $subschrift)
    GUICtrlCreateLabel("Gebe hier deine Nachricht ein:", 150, 272, 283, 17)
    GUICtrlSetFont(-1, $subsize, 400, 0, $subschrift)
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    $senden = GUICtrlCreateButton("Nachricht senden!", 104, 344, 241, 25, 0)
    GUICtrlSetFont(-1, $subsize, 400, 0, $subschrift)

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

    GUISetState(@SW_SHOW)

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

    While 1
    $msg = GUIGetMsg()
    Switch $msg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $senden
    Exit
    Case GUICtrlRead($ort_alle) == 4
    $box_pc = GUICtrlCreateGroup(" Eintellungen: ", 232, 72, 201, 177)
    GUICtrlSetFont(-1, $subsize, 400, 0, $subschrift)
    GUICtrlCreateLabel("Rechner Gruppe eingeben:", 240, 100, 177, 40)
    GUICtrlCreateInput("", 240, 136, 177, 21)
    Case GUICtrlRead($ort_gruppe) == 4
    $box_pc = GUICtrlCreateGroup(" Eintellungen: ", 232, 72, 201, 177)
    GUICtrlSetFont(-1, $subsize, 400, 0, $subschrift)
    GUICtrlCreateLabel("Rechner Nummer eingeben, an die gesendet werden soll:", 240, 100, 177, 40)
    GUICtrlCreateInput("", 240, 136, 177, 21)
    EndSwitch
    WEnd

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

    ...

    [/autoit]

    Ich danke euch schon mal für die Hilfe!

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™