Form (Screenshot) drucken



  • Hallo,

    ich möchte über das menuStrip(drucken) von dem geöffneten Fenster einen Screenshot machen und denn dann ausdrucken. Vom Code her soweit kein Probelm, nur wenn ich drucke, drucke ich Teile des menuStrip mit, was ja eigentlich nicht sein sollte. Wie kann ich dieses Probelm umgehen?

    Mein Code:

    private: System::Void miDatei_Drucken_Click(System::Object^  sender, System::EventArgs^  e)
    		 {
    			 // Drucken-Dialog anzeigen und ggf. Druck starten
                    if (printDialog1->ShowDialog() 
                                  == System::Windows::Forms::DialogResult::OK)
                    {
    
    					 printDocument1->DocumentName = "Test1";
    
    					CaptureScreen();
    
    					printDocument1->Print();
                    }
    
    		}
    

    CaptureScreen():

    void CaptureScreen()
        {
            Graphics ^myGraphics = this->CreateGraphics();
    		SizeF s   = this->Size;
            memoryImage = gcnew Bitmap(s.Width, s.Height, myGraphics);
            Graphics ^memoryGraphics = memoryGraphics->FromImage(memoryImage);
            memoryGraphics->CopyFromScreen(this->Location.X, this->Location.Y, 0, 0, s.ToSize());
        }
    


  • Guten Tag,

    Wenn ich das Problem richtig verstanden habe, wird dein Screenshot ausgeführt während dein menuStrip noch geöffnet ist. Selbstverständlich wird dann dieser auch mit "abgelichtet".

    Versuche den menuStrip zu schließen bevor der Screenshot einsetzt.

    Den genauen Code kann ich dir im Moment leider nicht sagen, bzw. weis ich auch nicht was GENAU du alles drucken möchtest.

    Mit

    this->
    

    greifst du ja immer auf das aktuelle auslösende Ereignis zu. Vielleicht möchtest du auch nur einen bestimmten Bereich in deiner Anwendung festhalten. Z.B.: irgendeinPanel->CreateGraphics() ...

    Oder poste mal einfach nen Screenshot von deinem "Fehldruck" 🙂

    Links zum Thema:

    http://board.gulli.com/thread/328127-c-screenshot-von-fester-im-hintergrund-machen/

    http://www.html.de/c-c-c-java-visual-basic/14135-c-screenshot.html

    http://www.c-plusplus.net/forum/viewtopic-var-t-is-240620.html

    mfg



  • Hallo nochmal,

    Ich versuche immer noch dieses Problem zu lösen. Mittlerweile bin ich soweit,
    dass der Screenshot vom Fenster so gemacht wird wie er sein soll. Das Problem ist, dass der Scrennshot erst nachdem ich einmal auf die Menüleiste auf Drucken geklickt habe, dann den Druckauftrag abgebrochen habe und beim zweiten mal auf Drucken gehe einwandfrei macht. Klicke ich im Menü nur einmal auf Drucken, erschint im Ausdruck meine Menüleiste. Ich habe keinen Plan wie ich das ändern kann, dass er beim ersten mal einen vernünftigen Scrennshot macht.

    MfG
    Hotte


Anmelden zum Antworten