この 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;
問題は、個々のカーソルを表示するだけでなく、マウスの軌跡を作ることです。マウスが動くたびにキャンバス全体をクリアできますか? (しかし、良い考えのようには聞こえません)。たぶんCanv.Draw
、そのコードの逆を実行することで以前をクリアできますか(可能であれば)?カーソルを表示する方法について何か提案はありますか?
Canv.Draw(currentX,currentY,Bitmap);
編集:ビットマップの幅と高さを設定した直後に別のものを挿入しようとしました...そして今、問題は(マウスの軌跡ではなく)白い軌跡があり、はるかにきれいですが、まだ良くありません。