PNGs transparent auf den Bildschirm malen



  • Hi und viele Grüße an alle,

    ich hatte neulich eine Idee für einen schönen Programm launcher, wenn alles so funktioniert, wie ich es mir vorstelle, kann man damit programme schneller starten als mit jeder anderen Lösung. Er verbraucht nicht einmal Platz auf dem Bildschirm. (Mein letzter hat immerhin noch einen ganzen pixel gebraucht ;-))
    Dazu muss ich allerdings PNGs über die aktiven Fenster oder auch das Desktop malen. Wenns nicht über DirectX oder ähnliches drübergeht ist das kein Problem.
    Im Prinzip such ich einige Funktionen, Bibliotheken, etc die mir ein ähnliches Ergebnis liefern, wie das was RocketDock kann.
    Dazu kommt dann noch ein Maushook, umwandlung von ico in png, etc, aber dazu komm ich später 😃

    Marius



  • Ich gehe mal davon aus, dass du Windows nutzt, wenn du von DX sprichst.
    Du laedst das Bild in den Speicher (wie du das machst ist klar? z.B. gdi+) und blittest es auf den Desktop / ein anderes Fenster.
    Den DC des Desktops erhaelt man mit GetDC(0) (s. http://msdn2.microsoft.com/en-us/library/ms533241(VS.85).aspx) fuer andere Fenster GetDC mit dem entsprechenden Window Handle (was man wiederrum auf verschiedenen Arten finden kann, etwa FindWindow).
    Dann BitBlt und dein Bild wird dargestellt.

    Ansonsten kannst du auch Direct Draw Overlays nutzen (Google...).



  • Ich bin furchtbarer Anfänger in C++, kenn mich lediglich in ein paar anderen Programmiersprachen aus. Am liebsten würd ich Gdi+ benutzen, mein Problem ist, dass die Dokumentationen im Web ein furchtbares durcheinander aus verschiedenen Entwicklungsumgebungen und Sprachen darstellen.
    Ich benutz derzeit Dev-C++, ist das zu empfehlen? Ich glaub da ist es nochmal was größeres GDI+ einzubinden.
    Toll wäre natürlich, wenn es irgendwo ein größeres zusammenhängendes CodeBeispiel gibt, welches ich mir anschauen kann. Da ich mit C++ nciht groß vertraut bin hab ich sonst immer das Problem, dass verschiedene Codestücke einfach nicht zusammenpassen.
    Hab grad ne ganze weile gegoogelt und habs immerhin geschafft ne BMP darzustellen, faszinierend 😃 Aber PNGs will der Code nicht laden.



  • Ich benutz derzeit Dev-C++, ist das zu empfehlen?

    Nunja...das letzte mal als ich es benutzt habe konnte es mich nicht ueberzeugen. Letzlich ist es geschmackssache, programmieren kannst du auch mit nem einfachen Editor.
    Die Einbindung von GDI+ sollte kein Akt sein, du musst irgendwo einen Include-Pfad (Pfad zu den Header-Dateien von GDI+) und das Verzeichnis zu den Libs bekanntmachen.

    Im Magazin gibt es einen Artikel zu gdi+, allerdings gehen deine Anforderungen wohl etwas darueber hinaus.

    Ich denke allerdings, du solltest mit etwas kleinerem anfangen und erstmal relativ sattelfest in C++ (und dem Umgang mit deiner IDE..) sein, bevor du dich mit solchen Sachen beschaeftigst.
    Die GDI+ Referenz ist imho relativ verstaendlich und das API nicht sonderlich kompliziert, wenn man die Grundprizinpien der Programmierung mit C++ und die allgemeine Syntax intus hat.

    Nichtsdestotrotz kannst du konkrete Fragen immer stellen (und ggf den Code zeigen, den du schon hast).


Log in to reply