Grafischen Inhalt eines CDC's in einem Bitmap speichern
-
Hallo,
ich möchte den grafischen Inhalt eines Fensters in einem Bitmap speichern, um den Bildschirminhalt später wieder erzustellen.
Versuche mittels CDC::GetCurrentBitmap() schlugen aber leider fehl. Jemand eine andere Idee??? thx
-
-
Ich möchte kein Bitmap in einem Fenster darstellen, sondern umgedreht, die Inhalt des Fensters in einem Bitmap festhalten. Somit bringt mir BitBlt() nix, trotzdem danke.
p.s.: der link is defekt
-
Ich wollte Dir ja nur helfen...
PS: Der Link ist nicht defekt... eher CP hat mal wieder Probleme...
-
schau mal unter:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-54279-and-highlight-is-cpicture.html
da gibt es eine Klasse die dir vielleicht weiterhelfen kann. Soweit ich mich erinnere kann man mit ihr Bitmaps abspeichern...
-
ich habs, tschuldige Jochen, war nicht böse gemeint.
wen es interessiert:
bool CGThread::screenshot(CDC * pCDC, CRect r, CBitmap * pbmp) { pbmp->CreateCompatibleBitmap(pCDC,r.right-r.left,r.bottom-r.top); CDC memDC; memDC.CreateCompatibleDC(pCDC); CBitmap * pold= memDC.SelectObject(pbmp); memDC.BitBlt(0,0,r.right-r.left,r.bottom-r.top,pCDC,r.left,r.top,SRCCOPY); memDC.SelectObject(pold); memDC.DeleteDC(); return true; }
Das CBitmap-Objekt dessen Adresse übergeben wird darf vorher noch nicht init. sein, mehrmals Create... geht natürlich nich.
Nach Aufruf der Methode ist hier das Ergebnis drin.Mit CRect r den Bildschirmausschnitt angeben der gewünscht wird.
und CDC * ist ,was sonst, der Zeiger auf das CDC des Fensterinhalt man haben möcht.