1
我希望我的程序有点像Team Player。多鼠标,多光标,但只有一个焦点。但问题是我无法隐藏默认光标。我只希望它是隐形的。 到目前为止,这仅适用于我的应用程序。如何在Windows中隐藏光标? (delphi)
ShowCursor(false);
和
Screen.Cursor:=crNone;
有没有办法隐藏光标整个系统(只是直到我结束我的应用程序)?
编辑: 这不起作用:
procedure myShowCursor(Show :boolean);
var cursor1, cursor2: HCursor;
begin
cursor1 :=CopyIcon(Screen.Cursors[crDefault]);
cursor2 := LoadCursorFromFile('blank\blank.cur');
if Show then
SetSystemCursor(cursor1, OCR_NORMAL)
else
SetSystemCursor(cursor2, OCR_NORMAL);
end;
这工作:(但我不能准确地用这个)
procedure myShowCursor;
var cursor1, cursor2: HCursor;
begin
cursor1 :=CopyIcon(Screen.Cursors[crDefault]);
cursor2 := LoadCursorFromFile('blank\blank.cur');
SetSystemCursor(cursor2, OCR_NORMAL);
SetSystemCursor(cursor1, OCR_NORMAL)
end;
解决:通过SystemParametersInfo恢复系统游标
procedure TForm1.myShowCursor(Show :boolean);
var cursor1: HCursor;
begin
cursor1 := LoadCursorFromFile('blank\blank.cur');
if Show then
SystemParametersInfo(SPI_SETCURSORS,0,0,WM_SETTINGCHANGE or SPIF_UPDATEINIFILE)
else
SetSystemCursor(cursor1, OCR_NORMAL);
end;
感谢堆...!还有一件事。我无法再显示默认光标。我尝试了最后一部分,但没有奏效。 – Dian 2010-07-22 05:47:28
它在我的计算机上工作,也许你正在使用范围外的游标变量(在其他事件处理程序中,即你已经在这个事件处理程序中声明了它们,但是你重新声明并调用它们并从applicationOnClose事件中调用它们的最后一部分),请尝试声明'cursor1 ,cursor2'在单元实现部分,看看最后一部分是否现在工作? – 2010-07-22 06:11:10
提示:使用GetCursor()代替CopyIcon – histrio 2010-07-22 06:19:02