windows - 如何在 Windows 中隐藏光标? (德尔福)

标签 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;

最佳答案

先下载一个空白游标,很多地方可以下载,我是从 http://pc.autons.net/stuff/blanks/blank.zip ,extact 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;

希望对你有帮助

关于windows - 如何在 Windows 中隐藏光标? (德尔福),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3305708/

相关文章:

windows - 合并 ETL 文件失败 (0x80070070)(标志 : 0x0000011f)

c++ - Windows XP 到 Ubuntu Linux 点对点通信使用 Python 或 C/C++

delphi - 为什么将此汇编代码移植到 x64 时会出现访问冲突?

multithreading - Delphi7中不同线程分配和释放内存

delphi - FastReport 自动换行到下一行

windows - 如何在系统启动后20分钟运行windows计划任务?

asp.net-mvc - 为 Windows XP 创建独立的 ASP.NET MVC 应用程序

c++ - (Windows HID API)HidD_GetPreparsedData() 由于句柄不正确而在 WM_INPUT 消息处理程序中失败?

c++ - 可以在linux程序中使用带有msvc的在windows上构建的lib

windows - Windows XP 和 GetTickCount64 上的 Qt 应用程序