Hello
Voilou, j'essaie de faire un petit truc avec une TPaintBox...
Dans une TPaintBox, je construis une TBitMap. Dans cette TBitMap, je dessine un curseur en forme de croix sous la m�thode OnMouseMove de la TPaintBox. Ainsi, je voudrais que la fameuse crois se d�place en m�me temps que je d�place ma souris sur le TPaintBox. Jusque l�, je n'ai pas vraiment trouv� de solution si ce n'est de redessiner un rectangle blanc par dessus tout pour r�initialiser mon image, et enfin dessiner la croix dont la position a �t� actualis�e. Bon ok je peux �tre plus flou si vous voulez, mais en gros, voici le genre de code :
Comme vous le voyez, avant de dessiner la croix, je dessine un rectangle ayant les m�mes dimensions que la Paintbox afin de tout effacer. Seulement �a ne me convient pas. En effet, la prochaine �tape serait de dessiner une image de fond, par exemple un rectangle, image qui resterait l� tout le temps, et de n'actualiser qu'un seul �l�ment, le fameux curseur.
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
19
20
21
22
23 __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { BitMap = new Graphics::TBitmap; BitMap->Width = PaintBox1->Width; BitMap->Height = PaintBox1->Height; } void __fastcall TForm1::PaintBox1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y) { BitMap->Canvas->Pen->Color = clWhite; BitMap->Canvas->Brush->Color = clWhite; BitMap->Canvas->Rectangle(0, 0, PaintBox1->Width, PaintBox1->Height); PaintBox1->Canvas->Draw(0, 0, BitMap); BitMap->Canvas->Pen->Color = clRed; BitMap->Canvas->MoveTo(X-20,Y); BitMap->Canvas->LineTo(X+20,Y); BitMap->Canvas->MoveTo(X,Y-20); BitMap->Canvas->LineTo(X,Y+20); PaintBox1->Canvas->Draw(0, 0, BitMap); }
J'ai fouill� un peu dans le forum, j'ai eu du mal � trouver une solution � mon probl�me. J'ai essay� le mode pmXor pour la propri�t� pen->mode, mais bof bof.
Est-ce que quelqu'un aurait une id�e ?
Partager