首页 > 解决方案 > 如何将光标保存到文件 .cur?

问题描述

我在 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);

那么我该怎么做呢?

标签: c#

解决方案


尝试如下所述:

        //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");

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


推荐阅读