GDI+ Schaltflächen mit Auto-Scrolling

  • Moin zusammen

    Für mein aktuellstes Projekt(chen) kann ich ausnahmsweise mal nicht mit GUI's arbeiten, deshalb hab ich mir mal ein paar GDI+-Tutorials/Anleitungen angesehen.
    Da gibt es ja schon einige vielversprechende Dokumente, ABER: Ich werde aus diesem Zeugs einfach nicht schlau und bevor ich mich wahnsinnig mache frag ich mal lieber bei euch nach ;)
    Zuerst mal ein paar generelle Fragen:

    • Wie arbeitet GDI+?
    • Welche Probleme werden generell mit GDI+ gelöst?
    • Wie erstellt man damit Elemente?
    • Gibt es dafür eine Art Designer? (Hab mir schonmal QuickDraw angesehen, aber daraus werde ich leider auch nicht schlau :pinch: )

    Und jetzt noch zu meinem eigentlichen Problem:
    Also...ich habe jetzt beispielsweise einige Bilder in ca. 4-5 verschiedenen Grössen und will diese nun als Buttons anzeigen lassen.
    Jetzt denken viele wahrscheinlich: "da wäre auch noch eine GUI viel sinvoller wenn du GDI+ nicht kappierst ?( ", aber das ist noch nicht alles, Ich will eine Art Auto-Scrollen einbauen d.h. wenn ich mit dem Mauszeiger an einer bestimmten Stelle des Bildschirms stehen bleibe, dann scrollen die Schaltflächen automatisch nach links/rechts aus dem Bild heraus, während gleichzeitig eine neue Serie reinscrollt (von der gegenüberliegenden Seite natürlich).
    Ihr könnt euch das wahrscheinlich am besten in der Art vorstellen, wie bei der Kacheloberfläche die im Windows 8 Consumer-Preview verwendet wurde.
    Ich habe sowas eg. schonmal gesehen und auch schon mal irgendwo abgespeichert, dummerweise hat mein PC sich letzte Woche mal wieder verabschiedet und leider weiss ich nicht mehr woher ich das Programm hatte.

    Ich hoffe jemand kann mir helfen...es gibt ja anscheinend noch einige GDI+-Experten unter euch ^^

    lg

    Edit: Das ich QuickDraw nicht kappiere ist kein persönlicher Angriff gegenüber dem Programmierer der es geschrieben hat, ich bin momentan leider ziehmlich zerstreut, vergesslich und ein kleiiiines Bisschen schwer von Begriff ;)

    Bild1: Ich beim debuggen

  • Hey um deine Fragen zu beantworten:

    Zitat

    Wie arbeitet GDI+?

    Du musst es dir so vorstellen, als wäre das Arsenal an GDI-Befehlen eine Kiste mit ganz ganz ganz vielen verschieden Malwerkzeugen. Natürlich brauchst du eine Fläche, auf der du malen kannst, deshalb erstellt man sich zum Beispiel eine GUI oder ein 'Bild'. In deinem Script hast du dann eine Hauptschleife, in der du die GUI erst übermalst und dann alles was auf der GUI zu sehen sein soll nacheinander mit den GDI-Befehlen drauf malst. Je nachdem wie schnell/langsam dies geschieht kann es auch zu Ruckeln/Flackern kommen. Dazu kannst du dich mal mit dem Thema Back-/Front-Buffer beschäftigen.

    Zitat

    Welche Probleme werden generell mit GDI+ gelöst?

    Zum Einen fast alles was mit Bildern zutun hat. (zB.: Bilder drehen/verkleinern/verzerren/anmalen/übermalen/färben/...) Zum Anderen ist es auch, wie oben schon beschrieben, möglich auf GUIs zu zeichnen und damit dann zum Beispiel Buttons und Co im eigenen Style zu erstellen. Auch kleinere Spiele lassen sich problemlos mit GDI+ erstellen. (Genauer gesagt das zeichnen 'des Spiels' auf die GUI...)

    Zitat

    Wie erstellt man damit Elemente?

    Ich nehme jetzt einfach mal an, dass du mit 'Elemente' GUI-Controls meinst. In der Regel geht man so vor, dass man mit einem Grafikprogramm seiner Wahl entsprechende Grafiken für die Controls erstellt und sie dann mit GDI+ auf die GUI zeichnet...

    Zitat

    Gibt es dafür eine Art Designer?

    Nein. Man benutzt, wie oben schon beschrieben, ein Grafikprogramm ala Photoshop/Gimp... ;)

    LG
    Christoph :)

  • Hey...danke schonmal :thumbup:
    Also wenn ich jetzt ein Bild mit GDI+ darstelle, wird das dann Pixel für Pixel gezeichnet stimmts?

    Ich nehme jetzt einfach mal an, dass du mit 'Elemente' GUI-Controls meinst. In der Regel geht man so vor, dass man mit einem Grafikprogramm seiner Wahl entsprechende Grafiken für die Controls erstellt und sie dann mit GDI+ auf die GUI zeichnet...

    Nein. Man benutzt, wie oben schon beschrieben, ein Grafikprogramm ala Photoshop/Gimp... ;)

    Ehm, wie man Bilder erstellt weiss ich ^^ aber wie krieg ich dann die Bilder auf die GUI? Also muss ich überhaupt eine GUI erstellen oder kann man das auch einfach auf dem Desktop machen?
    Und kann man auf diese Bilder dann auch etwas schreiben (wie ein Textfeld darüber erstellen)?
    Hast du vieleicht noch ein Link für ein gutes Tutorial oder so, irgendwie klingt mir das alles Spanisch :wacko:

    Bild1: Ich beim debuggen

  • Ja, ich schätze das Tutorial ist für Anfänger wohl ganz okay.

    Und:
    Du musst natürlich immer ein GUI erstellen, auf das du zeichnest; auf den Desktop selbst kannst du nicht zeichnen.
    Das Interface kann beispielsweise einen transparenten Hintergrund haben, oder du kannst auch einen Screenshot vom Desktop machen und diesen als Hintergrundbild des Interfaces festlegen.
    Alle Sachen werden nacheinander der Reihenfolge im Code nach auf das GUI gezeichnet. Wenn du einen Text über einem Bild angezeigt bekommen möchtest, muss erst das Bild und dann der Text gezeichnet werden.