Bereich eines Fensters kopieren



  • Hallo! ich möchte einen bereich meines Fensters an eine andere Stelle kopieren
    mit diesem Code:

    HDC hdc1 = GetDC (hwnd); //hwnd ist der handle meines Fensters

    if (hdc1==0) // Fehler?
    {
    MessageBox(hwnd,"Fenster DC konnte nicht ermittelt werden","Fehler",MB_ICONERROR);
    SendMessage(hwnd,WM_DESTROY,0,0);
    return 0;
    }

    BitBlt(hdc1,330,5,320,240,hdc1,5,5,SRCCOPY);

    ReleaseDC (hwnd,hdc1);

    leider wird nicht der bereich meines Fensters, sondern ein bereich des gesamten Bildschirms kopiert 🙄



  • Bist Du Dir sicher, dass Du die Parameter von BitBlt richtig angegeben hast?
    BitBlt

    Überprüf nochmal die Parameter für src und dest...



  • Nein, ich bin mir sicher, dass alles richtig ist.
    Es ist ein Bereich von 320*240 Pixeln, der an Position 5;5 liegt, dieser soll daneben an Position 330;5 Kopiert werden. Selbst wenn die Werte falsch wären, dann dürfte doch niemals außerhlab des Fensters gezeichnet werden, oder? Man könnte natürlich für die X und Y Positionen die Position des Fensters hinzuaddieren, wenn die position 0;0 in der oberen Bildschirmecke, statt in der oberen Fensterecke ist. nur dann würde auf eventuell überlappende Fenster gezeichnet werden, was auch wieder nicht sein darf.



  • Überprüf mal noch dein hwnd-Handle


Anmelden zum Antworten