Hintergrundinfo: Ich habe diese MFC-Anwendung, die ich codiert und für eine lange Zeit verwendet, dass ziemlich automatisch Screenshots auf der Festplatte speichert, wenn der Benutzer den Druckbildschirm/Alt + Druck Bildschirmtaste. Ich habe bis jetzt alles, was mit Aero zusammenhängt, aufgeschoben, dass ich Windows 7 RC seit ein paar Wochen benutze. Das Problem: Ich verwende die Standardmethode GetDC/BitBlt, um den Fensterinhalt zu erfassen. Ich habe keine Probleme mit dieser Methode während der normalen Vollbild-Grabs (egal wie viele Fenster geöffnet sind usw.). Das Problem tritt auf, wenn ich versuche, das Vordergrundfenster (Alt + PrintScreen) zu erfassen. Hier sind zwei Beispiele:Wie screencapture ich ein bestimmtes Fenster auf Aero/DWM
Beispiel 1 http://indiecodelabs.com/extern/example1.jpg
Beispiel 2 http://indiecodelabs.com/extern/example2.jpg
Wie Sie sehen, ich bin immer Müll, wo die Grenzen liegen. Dies ist eher nach oben hin sichtbar, wo wir in beiden Screenshots eine Duplizierung der Werkzeugleiste sehen können.
Ich habe jetzt stundenlang gegooglet und alles, was ich finden kann, sind Artikel, die sagen, dass die BitBtl/GetDC Methode unter DWM nicht funktioniert, aber keinen einzigen finden kann, der erklärt, was wir (die Entwickler) sollte tun, um die gleiche Funktionalität in unseren Apps bei DWM zu erhalten.
Jede Hilfe, Hinweise, Anregungen werden sehr geschätzt.
Viele Entschuldigungen auf den Bildlinks funktionieren nicht. Ich habe die Domain nie erneuert und vergessen, meine Bilder zu sichern. – enriquein