Bonjour.
Je développe actuellement une application sous visual C++.net dans laquelle je souhaite éditer une image se trouvant dans une PictureBox.
Voici le code:
Déclaration de la PictureBox:
Je déclare ensuite les évemements liés à la PictureBox:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 this->pictureBox1->Cursor = System::Windows::Forms::Cursors::Cross; this->pictureBox1->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"pictureBox1.Image"))); this->pictureBox1->Location = System::Drawing::Point(127, 30); this->pictureBox1->Name = L"pictureBox1"; this->pictureBox1->Size = System::Drawing::Size(352, 288); this->pictureBox1->TabIndex = 5; this->pictureBox1->TabStop = false;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 this->pictureBox1->MouseDown += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::pictureBox1_MouseDown); this->pictureBox1->MouseUp += gcnew System::Windows::Forms::MouseEventHandler(this, &Form1::pictureBox1_MouseUp);
Ensuite, lorsque j'appuie sur la souris (et que je reste enfoncé) ca enregistre la position p1 initiale et lorsque je relâche celle ci, l'application enregistre la position p2 finale.
Lorsque les deux positions ont été enregistréesn je teste si la deuxieme position est bien dans le caré de la pictureBox
Si oui, je créé un Pen et un objet Graphics puis utilise la méthode DrawLine.
Voici les deux fonctions qui font cela :
Ca passe a la compilation... mais seul probleme... quand je le fait sur l'application ca dessine un trait blanc derriere la PictureBox, et je ne comprend vraiment pas pourquoi :/
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 private: System::Void pictureBox1_MouseDown( Object^ sender, System::Windows::Forms::MouseEventArgs^ e ) { p1 = Cursor->Position; } private: System::Void pictureBox1_MouseUp( Object^ sender, System::Windows::Forms::MouseEventArgs^ e) { if ( p2.X > p1.X && p2.X < p1.X+352 && p2.Y > p1.Y && p2.Y < p1.Y+288 ) { p2 = Cursor->Position; Pen^ pinceau = gcnew Pen(Color::White, 4.0F); Graphics^ g = Form1::CreateGraphics(); g->DrawLine( pinceau, p1, p2 ); delete pinceau; delete g; } }
Merci d'avance pour vos possibles réponses![]()
Partager