GetDC für aktive Anwendung (Screenshot)
-
Ich möchte aus meiner Anwendung einen Screenshot von meinem
Programm erstellen. Ich kann zwar den ganzen Desktop "knipsen", aber
wie lege ich das auf meine Anwendung fest ?[cpp]HDC hdc=::GetDC(NULL); // hiermit Screen vom ganzen Bildschirm[/cpp]
Muss ich mit FindWindow arbeiten und hwnd entsprechen anstelle von NULL setzen,
oder geht es auch irgendwie einfacher ?
GetActiveWindow habe ich auch schon versucht, aber ich erhalte weiterhin
den ganzen Desktop als Bild.
-
Hier die Lösung:
HWND hWnd =::GetActiveWindow(); HDC hdc=::GetDC(hWnd); int cxIcon = GetSystemMetrics(SM_CXDLGFRAME); int cyIcon = GetSystemMetrics(SM_CYDLGFRAME); CRect rect; GetClientRect(&rect); int x = (rect.Width() - cxIcon); int y = (rect.Height() - cyIcon); DC2Bitmap(hdc, x, y, filename);