如何将光标保存到文件.cur?

时间:2018-09-24 16:44:44

标签: c#

我正在Winforms应用程序上使用Visual Studio 2015中的C#。

在我的应用程序中,我有一个返回游标类型的函数,我想将此游标保存到.cur文件中。

这是我的代码:

public static Cursor CreateCursor(Bitmap bmp, int xHotSpot, int yHotSpot)
{
    IntPtr ptr = bmp.GetHicon();
    IconInfo tmp = new IconInfo();
    GetIconInfo(ptr, ref tmp);
    tmp.xHotspot = xHotSpot;
    tmp.yHotspot = yHotSpot;
    tmp.fIcon = false;
    ptr = CreateIconIndirect(ref tmp);
    return new Cursor(ptr);
}

Cursor cr =  CreateCursor(GraphicsMaker(), 20, 20));

我想要这样的东西:

string MyPath = "c://MyLocation/Cursor.cur";
cr.save(MyPath);

那我该怎么做?

1 个答案:

答案 0 :(得分:1)

按以下说明尝试

        //YOUR CURSOR
        //Cursor cr =  CreateCursor(GraphicsMaker(), 20, 20)); (For Your question)
        Cursor cr = new Cursor(Cursors.Arrow.Handle);


        //GET ICON FROM YOUR CURSOR HANDLE
        Icon ico = Icon.FromHandle(cr.Handle);

        //WRITE TO FILE STREAM
        using (FileStream fs = new FileStream(@"c:\users\<<XXXX>>\test.cur", FileMode.Create, FileAccess.Write))
        ico.Save(fs);


        //TESTING
        Cursor myCursor = new Cursor(@"c:\users\<<XXXX>>\test.cur");

我可以在您的代码中看到许多非托管资源。希望您能妥善处理它们。