从资源加载嵌入的动画光标 [英] Load an embedded animated Cursor from the Resource

查看:151
本文介绍了从资源加载嵌入的动画光标的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在一个资源动画光标文件(.ani的*),并希望它显示为在我的应用程序中的光标。如何从资源加载它?

I have an animated Cursor file (*.ani) in the resources and want to show it as a cursor in my application. How can I load it from the resources?

我在网上看到了,但也有只显示它当u有一个真正的文件,方式和如果没有嵌入的资源。

I looked up in the Internet, but there are only ways to show it when u have a real file and if it is not embedded in the resources.

推荐答案

从这里资源修改//是:字节[]在调用可变资源

// from resources modification here is : byte[] variable resource in the call

//由伊万Genesse修改的类

// modified class by Yvan Genesse

public class AdvancedCursorsFromEmbededResources

{

// modified by Yvan Genesse November 29 2010 

// C# example tested in MS Visual Studio 2010 Ultimate version
// University Student in E-Business @ Laurentian University

// in your form code
/*
try
{
// from file
//this.Cursor = AdvancedCursors.Create(Path.Combine(Application.StartupPath, "flower_anim.ani"));
// from resouces   modification here is :   byte[] resource in the call
byte[] Embeded_Cursor_Resource = Properties.Resources.flower_anim;  // the animate cursor desired
this.Cursor = AdvancedCursorsFromEmbededResources.Create(Embeded_Cursor_Resource);

// or this way also works
this.Cursor = AdvancedCursorsFromEmbededResources.Create(Properties.Resources.flower_anim);
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}

*/



[DllImport("user32.dll")]
static extern IntPtr CreateIconFromResource(byte[] presbits, uint dwResSize, bool fIcon, uint dwVer);

// modification here is :   byte[] resource in the call       
public static Cursor Create( byte[] resource)
{
    IntPtr myNew_Animated_hCursor;

    //byte[] resource = Properties.Resources.flower_anim;

        myNew_Animated_hCursor = CreateIconFromResource(resource, (uint)resource.Length, false, 0x00030000);

    if (!IntPtr.Zero.Equals(hCursor))
        {
            // all is good
                return new Cursor(myNew_Animated_hCursor);
       }
        else
       {  // resource wrong type or memory error occurred
    // normally this resource exists since you had to put  Properties.Resources. and a resource would appear and you selected it
    // the animate cursor desired  is the error generator since this call is not required for simple cursors



          throw new ApplicationException("Could not create cursor from Embedded resource ");
        }         
}    


}

这篇关于从资源加载嵌入的动画光标的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆