HDC in CDC kopieren
-
Hei,
wie kopiert man doch gleich den Inhalt eines HDCs in ein CDC? Hatte es mit BitBlt vor aber das geht nicht.Also?
Danke,
Michael
-
Noch schnell zur Erklärung:
int src_width = GetSystemMetrics(SM_CXSCREEN); int src_height = GetSystemMetrics(SM_CYSCREEN); HWND hWnd = ::GetDesktopWindow(); HDC hdc = ::GetDC(hWnd); HDC memDC = ::CreateCompatibleDC(hdc); HBITMAP hbm = ::CreateCompatibleBitmap(hdc, src_width, src_height); HBITMAP hbmOld = (HBITMAP)::SelectObject(memDC, hbm); BitBlt(dc, 0, 0, src_width, src_height, hdc, 0, 0, SRCCOPY);Nur das der Inhalt nicht direkt auf dc ausgegeben werden soll, sondern auf das CDC
-
Wie wäre es sinnvollerweise gleich komplett mit MFC:
CDC* pDC = CWnd::GetDesktopWindow()->GetDC(); CDC memDC; memDC.CreateCompatibleDC(pDC); CBitmap Bitmap; Bitmap.CreateCompatibleBitmap(pDC, src_width, src_height); CBitmap* pOldBitmap = memDC.SelectObject(&Bitmap); // Und was auch immer du dann machen willst!Grüssli
-
VIELEN DANK!
Habe eine Sekunde bevor du geschrieben hast auch
src_dc.FromHandle(hdc);
gefunden, falls es mal wieder jemand braucht.Grüße,
Michael