C# 自定義光標 WaitCursor


一種: 把圖像文件放到項目的文件夾

1 如果圖像文件是.cur格式:

Cursor cur=new Cursor(文件名);

this.cursor=cur;

兩句話 就完事

2 如果圖像文件是其他格式  

首先引入命名空間

  1. using System.Runtime.InteropServices;

導入API

  1. [DllImport("user32.dll")]
  2. public static extern IntPtr LoadCursorFromFile(string fileName);

接下來使用自己的鼠標樣式

  1. IntPtr colorCursorHandle = LoadCursorFromFile("my.bmp");//鼠標圖標路徑
  2. Cursor myCursor = new Cursor(colorCursorHandle);
  3. this.Cursor = myCursor;

二種: 把圖像文件放到項目資源

  1 添加引用 using System.Runtime.InteropServices;

2.2 在程序中聲明光標資源加載函數LoadCursorFromFile;

[DllImport("user32")]

private static extern IntPtr LoadCursorFromFile(string fileName);

2.3 聲明數組 byte[] cursorbuffer=namespace.Resource .CursorName;

Namespace為資源文件所在項目的命名空間名稱,CursorName對應光標資源文件名。

2.4 創建一個臨時光標文件tempTest.dat;將cursorbuffer中的數據寫入數據文件中;

FileStream fileStream = new FileStream("tempTest.dat", FileMode. Create);

fileStream.Write(cursorbuffer, 0, cursorbuffer.Length);

2.5 關閉文件,利用API 函數LoadCursorFromFile從光標臨時文件中創建光標。

fileStream.Close();

Cursor .Current =new Cursor(LoadCursorFromFile("temp001.dat"));

其實加載光標就兩種方式,

1、直接用.cur文件直接獲得Cursor對象;

2、獲得文件的內存緩存指針,然后獲得Cursor對象,獲得指針有兩種方法①已知文件,由API函數LoadCursorFromFile()獲得指針;②如果是資源文件,則可以直接用Properties.Resources.資源名.GetHicon() 來獲得;

所以有了資源文件,我們不必把資源文件寫入文件,再通過LoadCursorFromFile()獲得即可。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM