【问题标题】:Windows 7 Like circular loader?Windows 7 喜欢循环加载器?
【发布时间】:2011-01-17 11:16:30
【问题描述】:

我只是想知道是否有人为 C# 制作了类似的东西,类似于在 Windows 7 和 Vista 中几乎无处不在的循环加载。

circular loading thing http://img600.imageshack.us/img600/3127/a7ff394fb1d04795b9a2a21.png

编辑:

我注意到很多关于 cursors 的 cmets 但这与我想要做的事情完全无关。我正在尝试创建一个加载圈,作为自定义控件(或类似的东西)绘制到我的窗口。

到目前为止我所做的尝试:

我尝试从以下 dll %SystemRoot%\System32\imageres.dll 中提取加载图像 没有成功,使用 Mark Pim (this one)提供的链接

我试过了,并且能够成功地从 dll 中提取 A 图像,但我无法确定如何提取我需要的特定图像。是在dll中列为Bitmap/5004的圆圈动画。

这是我尝试过的一些代码

    public struct SHFILEINFO
    {
        public IntPtr hIcon;
        public int iIcon;
        public uint dwAttributes;
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
        public string szDisplayName;
        [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 80)]
        public string szTypeName;
    };
    [DllImport("Shell32.dll")]
    public static extern IntPtr SHGetFileInfo(string pszPath, uint dwFileAttributes, ref SHFILEINFO psfi, int cbFileInfo, uint uFlags);
    public Image GetImage()
    {
        IntPtr hImgLarge;
        SHFILEINFO shinfo = new SHFILEINFO() { };
        string FileName = @"C:\Windows\System32\imageres.dll";
        System.Drawing.Icon myIcon;
        hImgLarge = SHGetFileInfo(FileName, 0, ref shinfo, Marshal.SizeOf(shinfo), 0x100);
        myIcon = System.Drawing.Icon.FromHandle(shinfo.hIcon);
        return myIcon.ToBitmap();
    }

我不确定如何操作 SHGetFileInfo 以返回正确的图像。有什么想法吗?

【问题讨论】:

  • 您可以在应用程序中包含光标文件并将其绘制到屏幕上。为什么要用 C# 重新实现它?
  • Windows 等待光标比我要找的圆圈要小.. 但是您甚至可以在将光标绘制到屏幕时为其设置动画吗?
  • this.Cursor = Cursors.WaitCursor 提供 Win7 的默认 UI 行为。从用户体验的角度来看,我建议保持这一点,而不是改变其他平台上的用户体验。
  • @Tommy:Cursors.AppStarting 怎么样?
  • 我看不出你们都用光标的东西去哪里。我没有在我的问题的任何地方提到“光标”。我想在我的窗口上画一个加载圆圈。

标签: c# .net winforms windows-7 controls


【解决方案1】:

看起来图像在 %SystemRoot%\System32\imageres.dll 中可用

我使用此应用程序浏览该 DLL,并手动验证我是否看到了微调器动画:

http://www.wilsonc.demon.co.uk/d10resourceeditor.htm

请参阅此问题,了解如何将这些插入到您的 winforms 应用程序中:

How can I access to system icons like "folder", "file" etc.?

【讨论】:

  • 感谢您的回答, - 我确实使用您建议的程序看到了微调器动画,但我不太清楚如何从程序集中收集加载图像。我会尽快更新问题。
猜你喜欢
  • 2012-12-14
  • 1970-01-01
  • 2012-12-08
  • 2018-06-03
  • 2022-06-28
  • 2012-03-12
  • 1970-01-01
  • 2017-05-16
  • 1970-01-01
相关资源
最近更新 更多