나는 나의 쥐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;
입니다 않는 모든 쥐를 들어 에 대한 커서를 그리는이 TCanvas와를 사용하고 있습니다 개별 커서를 표시하면 mouse trails이됩니다. 마우스가 움직이는 전체 Canvas Evertime을 지울 수 있습니까? (좋은 생각처럼 들리지는 않는다). 어쩌면 그 코드의 역순으로 (가능하다면) 이전의 Canv.Draw
을 지울 수 있습니까? 내가 커서를 보여줄 수있는 방법에 대한 제안이 있습니까?
EDIT : 비트 맵 너비와 높이를 설정 한 직후 다른 Canv.Draw(currentX,currentY,Bitmap);
을 삽입 해 보았습니다. 이제 문제는 마우스 흔적보다는 흰색 흔적이 있지만 훨씬 깨끗하지만 여전히 좋지 않습니다.
오, 그래, 고마워, 나는 FormCreate와 Bitmap.Free에 FormDestroy에 '커서 쉐이핑'코드를 배치하기로 결정했다. 양식을 사용하는 경우 캔버스의 X, Y 좌표가 양식의 왼쪽 위 속성과 동일합니까? – Dian
나는 당신의 질문을 이해하지 못한다. (마우스 용 TForm을 사용할 것을 제안한다.) 보통의 정사각형 TForm으로 시작하고 마우스 커서에 "모양"을 붙인다. 단순히 비트 맵을 캐싱하지 않는다. –
아, 죄송 합니다만 명확하지 않은 경우 양식의 위치를 의미합니다. 어떻게 배치 할 수 있습니까? 상단 및 왼쪽 특성을 사용해야합니까? ? (캔버스 'x'와 y 좌표는 캔버스가 비슷한지 궁금해했기 때문에 언급했습니다.) 커서 모양이 맨 위에 있으면 포커스가 여전히 기본 양식에 있습니까? 도움을 주셔서 감사합니다 : D – Dian