我正在用 C++Builder 制作一个数字白板程序。
TImage
它在usingMouseDown
和MouseMove
events上画线,如下所示:
Image1->Picture->Bitmap->Canvas->LineTo(x, y);
使用鼠标时没有问题。
但是,当我使用 Wacom 数位板画线时,它并不能完全识别笔的移动。与在白板上绘制图形相比,书写时出现的问题更多。
我不知道如何解决这个问题。
问题的原因是什么?我该如何解决?
附件是捕获的,以帮助您了解问题。左侧是鼠标,右侧是手写笔。
代码是这样的:
void __fastcall TForm1::Image1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
MouseClick = true;
Image1->Picture->Bitmap->Canvas->MoveTo(X,Y);
Image1->Picture->Bitmap->Canvas->LineTo(X,Y);
if (Pen==1){
if(type==0) //pen
{
Image1->Picture->Bitmap->Canvas->Pen->Color = ColorDialog1->Color;
PenColor = ColorDialog1->Color;
}
else if(type==1) //eraser
{
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(MouseClick)
{
Image1->Picture->Bitmap->Canvas->LineTo(X,Y);
}
}