首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 設定滑鼠為指定動畫游標 — LoadCursorFromFile + SetSystemCursor

     編輯:關於C語言

限制

Control.Cursor 僅支援靜態 .cur 檔案,**不支援動畫 .ani 游標**。需呼叫 Win32 API 實現。

P/Invoke 宣告


[DllImport("user32.dll", EntryPoint = "LoadCursorFromFile")]
public static extern IntPtr LoadCursorFromFile(string lpFileName);

[DllImport("user32.dll", EntryPoint = "SetSystemCursor")]
public static extern bool SetSystemCursor(IntPtr hcur, int id);

需 using System.Runtime.InteropServices;。

系統游標 ID 常用值

  • 32512 (OCR_NORMAL) — 普通箭頭
  • 32513 (OCR_IBEAM) — 文字編輯
  • 32514 (OCR_WAIT) — 等待
  • 32515 (OCR_CROSS) — 十字線
  • 32516 (OCR_UP) — 上箭頭
  • 32640 (OCR_APPSTARTING) — 應用程式啟動

範例:表單載入時套用動畫游標,關閉時還原


private void Form_Load(object sender, EventArgs e)
{
    string path = Path.Combine(Application.StartupPath, "sl3210mouse.ani");
    IntPtr hCur = LoadCursorFromFile(path);
    SetSystemCursor(hCur, 32512); // 替換系統預設箭頭
}

private void Form_FormClosing(object sender, FormClosingEventArgs e)
{
    // 還原系統預設箭頭 (需載入標準 .cur)
    IntPtr hCur = LoadCursorFromFile(@"C:\Windows\Cursors\arrow_m.cur");
    SetSystemCursor(hCur, 32512);
}

注意事項

  • 影響全系統:SetSystemCursor 替換的是**系統全域**游標,不僅限於應用程式。關閉時務必還原,否則影響其他程式。
  • 需確保 .ani 檔案路徑正確 (建議置於專案輸出目錄,設定「複製到輸出目錄」)。
  • Vista/Win7+ 可能因 UIIcon 服務機制導致替換不生效,需測試相容性。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved