Visual Studio平台中只给出了一些常见的光标,如何在应用程序中使用自己定义的更加专业美观的光标呢?这里Visual Studio并没有给出现成的支持,不过可以通过调用API函数来实现目标,ok,下面看看该怎么做吧!
一、加载标准光标资源文件(*.cur)
双击Resource.resx(如果资源管理器中没有这一项只需右击项目选择添加——>新建项——>资源文件即可)添加要显示的光标文件。
添加完成后,资源管理器中会出现Resources文件夹,我们添加的项目就会出现在这里,如user.cur。
二、更改光标
2.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"));
至此,整个流程完成,只要将2.3-2.5中的代码放置到相应的事件中(如窗体的MouseDown事件),即可实现自定义光标了。