бесплатное рисование на холсте с помощью мыши
Я делаю своего рода программу для рисования с помощью компоновщика С++. Программа хорошо работает с мышью, но есть проблема с распознаванием, когда я рисую на планшете, особенно пишу буквы.
Представляю образ программы. Одни и те же вещи пишутся мышью и пером планшета.
Кажется, я нашел причину проблемы. Когда я быстро повторяю MouseDown и MouseUp пером планшета, программа распознает движение мыши, поэтому вместо двух точек рисуется короткая линия.
Поэтому я должен заставить программу распознавать событие MouseUp, как только перо отделяется от планшета, как это делает мышь.
Есть ли способ распознать событие мыши, кроме события MouseClick->false или MouseUp? Я уже пытался использовать переключение переменной в событиях MouseDown и MouseUp, но это не работает.
'''
void __fastcall TForm1::Image1MouseDown(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
{
Image1->Picture->Bitmap->Canvas->MoveTo(X,Y);
pt_x=X;
pt_y=Y;
if (Button == mbLeft){
if(type==0){ //penmode
Image1->Picture->Bitmap->Canvas->Pen->Color = ColorDialog1->Color;
PenColor = ColorDialog1->Color;
}
else if(type==1) //erasermode
{
Image1->Picture->Bitmap->Canvas->Pen->Color = clWhite;
PenColor = clWhite;
}
}
else if (Button == mbRight) //eraser mode for right click
{
Image1->Picture->Bitmap->Canvas->Pen->Color = clWhite;
PenColor = clWhite;
}
Image1->Picture->Bitmap->Canvas->Pen->Width = ScrollBar1->Position;
PenWidth = ScrollBar1->Position;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
{
if(Shift.Contains(ssLeft))
{
Image1->Picture->Bitmap->Canvas->MoveTo(pt_x,pt_y);
Image1->Picture->Bitmap->Canvas->LineTo(X,Y);
pt_x=X;
pt_y=Y;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Image1MouseUp(TObject *Sender, TMouseButton Button, TShiftState Shift, int X, int Y)
{
MouseClick=false;
}
//---------------------------------------------------------------------------
'''