在程序中使用自定义光标,能使程序增色不少.如果使用外部光标文件,只要用LoadCursorFromFile()即可调用.但如果想要用资源文件来包含光标文件时,一般的光标文件没有问题,但是如果是动态光标的话,则不能通过LoadCursor()来调用.
解決方法:
1.资源文件的建立
新建一扩展名为rc的文件(记事本就可创建),添加资源说明.
如: C1 Cursor aaa.Cur
C2 file bbb.ani
第一个是普通的光标,第二个是动态光标.
2.将资源加到工程里.
3.设置鼠标光标
Screen->Cursors[1]=LoadCursor(C1);
//Screen->Cursors[1]=LoadCursor(C2);
//如果想载入动态光标,会失败
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
//加载动态光标
TResourceStream * rs=new TResourceStream((int)HInstance,"C2","file);
//生成临时的光标文件
char temp_path[MAX_PATH];
GetTempPath(MAX_PATH,temp_path);
strcat(temp_path,"temp.ani");
rs->SaveToFile(temp_path);
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
Screen->Cursors[2]=LoadCursorFromFile(temp_path);
this->Cursor=TCursor(2);
delete rs;
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
这里只是通过间接的方法,先生成文件,在载入文件.如果谁有好的方法,就不要吝啬了.