Screenshot des Panel-Inhaltes



  • Hallo,

    Gibt es eine Möglichkeit, den Inhalt eines Panels als Bild abzuspeichern, also als Screenshot, natürlich spreche ich nicht von Strg+Print sondern dachte eher an eine programmiertechnische Lösung. Was ich auf Google fand half mir nicht wirklich weiter.

    Vielen Dank im Voraus!



  • Füge den Code in eine ButtonKlick Event ein...

    Bitmap^ bmpScreenshot;
    Graphics^ gfxScreenshot;
    SaveFileDialog^ _saveScreenshot = gcnew SaveFileDialog();
    _saveScreenshot->Filter ="*.png|*.png";
    
    if (_saveScreenshot->ShowDialog() ==::DialogResult::OK)
    {
        this->Hide();
    	bmpScreenshot = gcnew Bitmap(Screen::PrimaryScreen->Bounds.Width, Screen::PrimaryScreen->Bounds.Height);
    	gfxScreenshot = Graphics::FromImage(bmpScreenshot);
    	gfxScreenshot->CopyFromScreen(Screen::PrimaryScreen->Bounds.X, Screen::PrimaryScreen->Bounds.Y, 0, 0, Screen::PrimaryScreen->Bounds.Size, CopyPixelOperation::SourceCopy);
    	bmpScreenshot->Save(_saveScreenshot->FileName);
    	this->Show();
    }
    

    Und vereinbare noch diese Namensräume, aber so wie in diesem Bsp. Global

    #pragma once
    
    using namespace System;
    using namespace System::ComponentModel;
    using namespace System::Collections::Generic;
    using namespace System::ComponentModel;
    using namespace System::Windows::Forms;
    using namespace System::Data;
    using namespace System::Drawing;
    using namespace System::Text;
    using namespace System::Drawing;
    
    namespace Panel1 {
    

    Gruß Doug_HH



  • Vielen Dank!

    Dein Beispiel "fotografiert" zwar den gesamten Bildschirm, das anzupassen war allerdings nicht wirklich schwer.



  • Gibt es eine Möglichkeit den Bildschirm hinter dem Programmfenster zu fotografieren ohne das das Programm mit aufs Bild kommt?

    Angenommen man würde eine Bildschirmlupe programmieren wollen, die immer das Bild hinter dem Fenster im Fenster (vergrößert) darstellt.


Anmelden zum Antworten