如何在Windows中隐藏光标? (DELPHI)

时间:2010-07-22 04:02:34

标签: windows delphi windows-xp cursor

我希望我的程序有点像Team Player。多鼠标,多光标但只有一个焦点。但问题是我无法隐藏默认光标。我只希望它是隐形的。 到目前为止,这仅适用于我的应用程序。

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;

1 个答案:

答案 0 :(得分:2)

首先下载一个空白光标,你可以从很多地方获取它,我从中下载了它 http://pc.autons.net/stuff/blanks/blank.zip     ,取出blank.zip然后将blank.cur复制并粘贴到所需的位置(我将其保存为'c:\ blank.cur',对于此示例) 然后试试这段代码:

var cursor1, cursor2: HCursor;
begin
 cursor1 := CopyIcon(Screen.Cursors[crDefault]);
 cursor2 := LoadCursorFromFile('c:\blank.cur');
 SetSystemCursor(cursor2, OCR_NORMAL);//to hide cursor
 Sleep(2000);
 SetSystemCursor(cursor1, OCR_NORMAL);//to show cursor again
end;

希望这会有所帮助