Zeichnen mit dem Aj und das zu langsam.. geht das schneller?



  • Hallo. Ist ja jetzt schon paar tage her, als ich euch das letzte mal belästigt habe. Bin dafür aber auch weiter gekommen. Ich kann nun mit C++/CLI zeichnen. jedoch ist es nicht schnell genug und vor allem nicht flüssig genug.

    Hier mein Code:

    void Form1::pictureBox1_MouseDown(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
    			 if(e->Button == System::Windows::Forms::MouseButtons::Left) {
    				mouseDown = true;
    				point->Add(gcnew SchreibKoordinaten(e->X + hScrollBar1->Value,e->Y + vScrollBar1->Value));
    				//layer->FillRectangle(Brushes::Black,e->X + hScrollBar1->Value,e->Y + vScrollBar1->Value, 1, 1);
    				pictureBox1->Refresh();
    				 }
    		 }
    	void Form1::pictureBox1_MouseMove(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
    			  hinzufuegen(e->X,e->Y);
    			  if(mouseDown) {
    
    				 p = Point(e->X + hScrollBar1->Value, e->Y + vScrollBar1->Value);
    				 layer->DrawLine(pen1, point[anzahl_gezeichnet]->getKoord(),p);
    				 point[anzahl_gezeichnet]->setKoord(e->X + hScrollBar1->Value, e->Y + vScrollBar1->Value);
    				 //region1 = gcnew System::Drawing::Region(Rectangle(e->X + hScrollBar1->Value, e->Y + vScrollBar1->Value, 2,2));
    				 pictureBox1->Refresh();
    				 //this->Invalidate(region1);
    				 //Update();
    				 //pictureBox1->Invalidate();
    			  }
    			  else {
    			  }
    		 }
    	void Form1::pictureBox1_MouseUp(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e) {
    			 if(e->Button == System::Windows::Forms::MouseButtons::Left) {
    				if(mouseDown) {
    					 p = Point(e->X + hScrollBar1->Value, e->Y + vScrollBar1->Value);
    					 layer->DrawLine(pen1, point[anzahl_gezeichnet]->getKoord(),p);
    					 point[anzahl_gezeichnet]->setKoord(e->X + hScrollBar1->Value, e->Y + hScrollBar1->Value);
    					 mouseDown = false;
    					 ++anzahl_gezeichnet;
    				}
    			 }
    		 }
    

    wie ihr seht ist einiges auskommentiert. da hab ich paar versuche gemacht, damit es schneller geht. Ich weiß zudem nicht, warum das, was ich auf dem layer zeichne auch in die pB genommen wird. eigentlich ist Layer nur eine Kopie des Bildes als Graphics...

    Hoffe ihr könnt mir da etwas denkanstoß geben.

    danke im voraus

    edit: Möglichkeit gefunden. Jedoch ist es immernoch zu langsam. Ich gehe jetzt über die Invalidate(rectangle)- Methode. Die ist ganz gut, läuft auch recht flüssig, jedoch immernoch zu langsam...

    Gibt es einen Buffer in C++/CLI???


Anmelden zum Antworten