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);
    

Anmelden zum Antworten