Desktopbild laden, als BMP speichern, und anschließend pixelweise darauf zugreifen
-
Hallo NG!
Ich bin gerade dabei, einen Startscreen zu gestalten. Dabei will ich den Hintergrund der Anwendung (also den Desktop bzw. die Fenster, die gerade offen sind) in den Startscreen einbinden. Dafür will ich eine Momentaufnahme des Desktop machen und danach ein bissl Bildverarbeitung anhängen, um den Startscreen richtig gut zu gestalten.
Hier im Forum finde ich immer zwei Varianten: Die eine ist super fehlerhaft und scheint bei keinem jemals gelaufen zu sein. Die andere Version ist sehr komplex geschrieben, und zusätzlich dazu kann man nicht pixelweise auf die Bilddaten zugreifen.
Von der Struktur her sollte das Programm dann das folgende ermöglichen:
1. Mache eine Momentaufnahme des Desktop
2. Schneide aus diesem Gesamtbild ein Rechteck heraus, das genausogroß ist, wie der Startscreen
3. Bildverarbeitung auf der Grundlage dieser beiden Bilder: Startscreen und Desktopbild
4. Ausgabe des dynamisch erzeugten Startscreens ...Kann mir jemand helfen ???
-
1.) GetDC(NULL)
2.) Memory-DC mit der gewünschten Größe erstellen und mit BitBlt hineinblitten
3.) GetDIBits bzw. CreateDIBSection (bin mir gerade nicht sicher, welches das Richtige ist)
4.) Mit BitBlt den Memory-DC in dein Fenster blitten
-
5. ReleaseDC nicht vergessen!
Du kannst auch den ganzen CreateDIBSection etc. Kramm umgehen, wenn du dein Fenster im nirgendwo öffnest ( >ScreenWidth) und direct da hinein blittest und dann mit MoveWindow an der richtigen stelle setzt. (für Einfache anwendung).