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
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Forum
  3. AutoIt 3
  4. Skripte

[UDF] GDI+ Button

  • hauke96
  • 27. November 2011 um 14:45
  • hauke96
    Profi
    Beiträge
    601
    • 27. November 2011 um 14:45
    • #1

    Hallo,

    Nitrama hatte vor kurzen die Frage gestellt ob man per GDI+ Buttons erstellen kann.
    daraufhin habe ich mir ein Beispielscript erdacht, welches einen "Preuso Button" erstellt, also keinen richigen.

    Wie wird denn nun der Button erstellt?

    Also es wird ein Label mit der größe des Buttons erstellt und darüber wird halt mit GDI+ ein Rechteck erstellt ( beliebige farbe, größer, etc. ) und auf dieses Rechteck wird ein Schriftzug erstellt.

    Bild siehe Anhang

    Funktionen:
    1.)

    [autoit]

    _GDIPlus_GraphicsDrawButton($hGraphics, $hText, $hX, $hY, $hW, $hH)

    [/autoit]


    $hGraphics = Per _GDIPlus_GraphicsCreateFromHWND erstelltes Handle
    $hX, $hY, $hW, $hH = X-Koordinate, Y-Koordinate, Breite, Höhe

    2.)

    [autoit]

    _GDIPlus_GraphicsDrawButtonEx($hGraphics, $hText, $hX, $hY, $hW, $hH, $hFont, $hSize, $hColor, $hFormat)

    [/autoit]


    $hGraphics = Per _GDIPlus_GraphicsCreateFromHWND erstelltes Handle
    $hX, $hY, $hW, $hH = X-Koordinate, Y-Koordinate, Breite, Höhe
    $hFont = Schriftart es Buttons
    $hSize = Schriftgröße des Buttontextes
    $hColor = Farbe des Button ( GDI+ Code; z.B.: 0xFF0000FF --> Blau )
    $hFormat = Format des Buttontextes. Siehe: _GDIPlus_GraphicsDrawString

    3.)

    [autoit]

    _GDIPlus_GraphicsDrawButtonImage($hGraphics, $hImageFile, $hX, $hY, $hW, $hH)

    [/autoit]


    $hGraphics = Per _GDIPlus_GraphicsCreateFromHWND erstelltes Handle
    $hImageFile = Pfad ( mit Dateiname.endung ) des Bildes
    $hX, $hY, $hW, $hH = X-Koordinate, Y-Koordinate, Breite, Höhe

    Über Kritik ( gut / Schlecht ) und Verbesserungsvorschläge würde ich mich sehr freuen.

    Downloads
    ( aktuelle Version mit Beispiel )

    ChangeLog


    V1.0 ( 27.11.11 :(

    _GDIPlus_GraphicsDrawButton()
    --> Normaler Button
    _GDIPlus_GraphicsDrawButtonEx()
    --> Buton mit erweiterten Optionen
    V1.1 ( 27.11.11 :(
    _GDIPlus_GraphicsDrawButtonImage()
    --> Bild als Button

    mfg
    Hauke

    Bilder

    • GDI+_Button_UDF.jpg
      • 11,24 kB
      • 316 × 236

    Dateien

    GDI+ Button-UDF.7z 6,48 kB – 526 Downloads

    [Blockierte Grafik: http://hauke-stieler.de/blog/wp-content/themes/songwriter/curi0sity_logo_icon.png] - Mein neuer IT-Blog rund ums Thema IT-SIcherheit, Kuriositäten aus diesem Gebiet und vieles mehr. (zum Blog)

    3 Mal editiert, zuletzt von hauke96 (27. November 2011 um 18:45)

  • Irrlicht
    ehemals Twodollarbillie
    Beiträge
    435
    • 27. November 2011 um 16:33
    • #2

    arbeitet das normale guictrlcreatebutton nicht auch über gdi+?

    [align=center]Meine Werke mit der Irrlicht Engine
    AutoIt Picture Viewer Dreidimensionaler Bildbetrachter
    Mr Bubble 3D Neue Interpretation des Flashklassikers Bubble trouble

  • hauke96
    Profi
    Beiträge
    601
    • 27. November 2011 um 16:56
    • #3

    Uff, das weiß ich nciht, aber wie gesagt die Idee kam über Nitrama.

    [Blockierte Grafik: http://hauke-stieler.de/blog/wp-content/themes/songwriter/curi0sity_logo_icon.png] - Mein neuer IT-Blog rund ums Thema IT-SIcherheit, Kuriositäten aus diesem Gebiet und vieles mehr. (zum Blog)

  • Nitrama
    Schüler
    Beiträge
    94
    • 27. November 2011 um 17:54
    • #4

    und jetzt noch mit bildern ^^
    das wehre es am besten ^^

  • Xorianator
    Kontextfrei
    Beiträge
    1.935
    • 27. November 2011 um 18:11
    • #5

    Ihr könnt doch alles zu "Buttons" machen !
    Ihr müsst lediglich abfragen ob auf euer Control geklickt wurde
    @2$ - Nee mit GDI ;)

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • hauke96
    Profi
    Beiträge
    601
    • 27. November 2011 um 18:46
    • #6

    Nitrama:

    gesagt getan ;)

    Also:
    V. 1.1:
    _GDIPlus_GraphicsDrawButtonImage()
    --> Erstellt Bild als Button

    Download s.o.

    mfg
    Hauke

    [Blockierte Grafik: http://hauke-stieler.de/blog/wp-content/themes/songwriter/curi0sity_logo_icon.png] - Mein neuer IT-Blog rund ums Thema IT-SIcherheit, Kuriositäten aus diesem Gebiet und vieles mehr. (zum Blog)

  • Njahs
    Schüler
    Beiträge
    93
    • 27. November 2011 um 19:10
    • #7

    Ich würde , wenn kein Bild gefunden wurde ,
    einfach transparent machen , oder
    einfach garkeinen button erstellen?

    *nur vorschlag

    , sonst is alles 1a

  • hauke96
    Profi
    Beiträge
    601
    • 27. November 2011 um 19:13
    • #8

    ja ich fand das hier eigentlich besser, weil wenn da einfach kein Button entsteht, dann weiß man ja nciht, dass er das Bild nicht gefunden hat.

    [Blockierte Grafik: http://hauke-stieler.de/blog/wp-content/themes/songwriter/curi0sity_logo_icon.png] - Mein neuer IT-Blog rund ums Thema IT-SIcherheit, Kuriositäten aus diesem Gebiet und vieles mehr. (zum Blog)

  • Njahs
    Schüler
    Beiträge
    93
    • 27. November 2011 um 19:15
    • #9
    Zitat von hauke96

    ja ich fand das hier eigentlich besser, weil wenn da einfach kein Button entsteht, dann weiß man ja nciht, dass er das Bild nicht gefunden hat.

    Einfach dazuschreiben? :P

  • Nitrama
    Schüler
    Beiträge
    94
    • 27. November 2011 um 19:25
    • #10

    Ein DICKES großes danke schön an dich :)

  • hauke96
    Profi
    Beiträge
    601
    • 27. November 2011 um 19:31
    • #11

    @Nitrama:

    gern geschehen! :thumbup:

    mfg
    Hauke

    ps.: @Njahs: In V1.3 oder so mache ihc dann noch einen Mode hinzu ( 1 = Transparent, 2 = BugReport im Label )

    [Blockierte Grafik: http://hauke-stieler.de/blog/wp-content/themes/songwriter/curi0sity_logo_icon.png] - Mein neuer IT-Blog rund ums Thema IT-SIcherheit, Kuriositäten aus diesem Gebiet und vieles mehr. (zum Blog)

  • Xorianator
    Kontextfrei
    Beiträge
    1.935
    • 27. November 2011 um 19:37
    • #12

    ... ihr könnt doch auch normale Bilder zu "Buttons" machen !

    Es gibt sehr viele Leute, die glauben. Aber aus Aberglauben.
    - Blaise Pascal

  • hauke96
    Profi
    Beiträge
    601
    • 27. November 2011 um 19:39
    • #13

    @Mattthias:
    klar, aber das wäre ja zu einfach ;) :D
    ne im ernst: Die Bedingung von Nitrama war ja, dass das ganze ein GDI+ Button sein soll.

    mfg
    Hauke

    [Blockierte Grafik: http://hauke-stieler.de/blog/wp-content/themes/songwriter/curi0sity_logo_icon.png] - Mein neuer IT-Blog rund ums Thema IT-SIcherheit, Kuriositäten aus diesem Gebiet und vieles mehr. (zum Blog)

  • Cheater Dieter
    Tippspielsieger EM 2012
    Reaktionen
    3
    Beiträge
    1.074
    • 27. November 2011 um 20:41
    • #14

    Schaut gut aus. Wie wäre es, wenn du noch ein paar optische Effekte hinzufügst, dann sieht das ganze besser aus?

    [Blockierte Grafik: http://s1.directupload.net/images/140501/6ucoyyzy.png] GrooveLoad

    Geh mit Gott, aber geh! [Blockierte Grafik: http://hegi.tk/icons/]

    [Blockierte Grafik: http://hegi.tk/profi.jpg]

  • hauke96
    Profi
    Beiträge
    601
    • 27. November 2011 um 20:42
    • #15

    währe auch ne gute Idee, mach ich dann irgendwann wemnächst ;)

    mfg
    Hauke

    [Blockierte Grafik: http://hauke-stieler.de/blog/wp-content/themes/songwriter/curi0sity_logo_icon.png] - Mein neuer IT-Blog rund ums Thema IT-SIcherheit, Kuriositäten aus diesem Gebiet und vieles mehr. (zum Blog)

  • SgtIgram
    Fortgeschrittener
    Beiträge
    158
    • 26. Dezember 2011 um 18:59
    • #16

    howdy ho!

    habe für meine zwecke ein paar änderung vorgenommen und denke das, dass der eine oder andere gebrauchen könnte!

    (bildbutton)
    mir ist aufgefallen das der button flackert wenn ich die ausgabe in einer while schleife erneuer weil du bei jedem aufrufer der funktion das bild neu ausließt
    wenn man aber

    [autoit]


    $objectSource = _GDIPlus_ImageLoadFromFile($objectFile)
    $objectHandle = _GDIPlus_GraphicsDrawButtonImage($hBuffer, $objectSource, $iX, $iY ,$width ,$height)

    [/autoit]


    schreibt und _GDIPlus_ImageLoadFromFile() aus der UDF entfernt kann man die funktion ohne flackern wieder und wieder wiederholen ;D

    vergesst bitte nicht in der UDF eine abfrage reinzuhaun ob $Button_Label gesetzt ist

    [autoit]

    If Not $Button_Label Then $Button_Label = GUICtrlCreateLabel("", $hX, $hY, $hW, $hH)

    [/autoit]

    in zeile 33 sollte $hImage in $hImageFile geändert werden, sollte klar sein aber ich schreibs einfach mal dazu

    mfg
    sgtigram

  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™