Я использую этот TCanvas для рисования курсоров для моих мышей
Canv := TCanvas.Create;
Canv.Handle := GetWindowDC(0);
....
Для каждого события мыши сделайте следующее
Bitmap:=TBitmap.Create;
CursorInfo.cbSize := sizeof(CursorInfo);
GetCursorInfo(CursorInfo);
Bitmap.Width := 32;
Bitmap.Height := 32;
Bitmap.Transparent:=true;
DrawIconEx(Bitmap.Canvas.Handle, 0,0, CursorInfo.hCursor, 32,32, 0,0, DI_NORMAL) ;
Bitmap.Canvas.Brush.Color := RGB(250,250,250);
Bitmap.Canvas.FloodFill(31,0, clWhite, fsSurface);
Bitmap.Canvas.FloodFill(0,0, clWhite, fsSurface);
currentX:=getcurrentxpos;
currentY:=getcurrentypos;
Canv.Draw(currentX,currentY,Bitmap);
Bitmap.Free;
Проблема заключается не только в показе отдельных курсоров, а в следах мыши . Могу ли я очистить весь Canvas, когда мышь движется? (не похоже на хорошую идею). Может быть, я мог бы очистить свой предыдущий Canv.Draw
, выполнив обратный код (если это возможно)? Любые предложения о том, как я могу показать курсоры?
EDIT:
попытался вставить еще один Canv.Draw(currentX,currentY,Bitmap);
сразу после установки ширины и высоты растрового изображения ... и теперь проблема в том, что у меня есть белый след (а не след мыши), намного чище, но все равно не годится.