65.9K
CodeProject 正在变化。 阅读更多。
Home

CProgressFX 和 CHourglassFX

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.95/5 (21投票s)

2000年10月17日

viewsIcon

178426

downloadIcon

5397

两个动画提供类,用于为任何 CWaitingTreeCtrl 派生类添加动画效果

它们是什么?

在这里,我提供了一些动画提供者类,你可以将它们与任何 CWaitingTreeCtrl 派生类一起使用(参见 文章)。它们现在只是示例,可以作为你实现更流畅动画效果的起点,也可以在你的小项目中“原样”使用。

CProgressFX

这个动画提供者简单地在填充树形控件时显示一个进度条。

Sample application

如果已知要添加的项目的总数,它会显示一个线性进度条,否则它会将当前进度(会无限增长)映射到一个有限的范围内,从而允许显示进度条。

CHourglassFX

这个动画提供者简单地显示一个带有常用沙漏的动画图标。

Sample application

注意:我终于找到了我的动画图标只有在链接到 MFC 动态库时才能成功加载的原因,这与 MFC 无关。我用来制作动画图标的应用程序,在 RIFF 头中指定了错误的大小。这额外的 8 个字节导致系统读取到文件末尾之外,在动态库中找到零,在静态库的标准 MFC 资源中找到零。它将零解释为 EOF 标记并成功返回,而它不喜欢后续资源的其它字节,因此返回失败。RIFF 头中的正确值是文件大小减去 8,所以我只是在 VC++ 资源编辑器中的偏移量 4 处更改了双字,即使在静态构建中也能得到我的图标。

使用类

使用动画提供者类非常容易。假设你已经创建了自己的内容提供者类:CMyTreeCtrl。如果你想添加一个或多个动画,你可以将变量声明如下

#include "MyTreeCtrl.h"

#include "ProgressFX.h"
#include "HourglassFX.h"

...

    CProgressFX< CHourglassFX< CMyTreeCtrl > > m_ctlMyTree; 

这是结果

Sample application

更新

  • 2000 年 10 月 17 日:首次公开发布
  • 2001 年 9 月 27 日:修复了动画图标的错误

许可证更改为艺术许可证

结论

我希望有人喜欢这些类并想编写自己的类。你可以使用外部进度控件实现新的动画,或者使用用户可选择的动画光标,或者使用报告剩余加载项目的消息文本(如 VS 类视图),或者你可以想象的任何东西。如果你这样做,看到一篇关于它的新文章会很好。我将感谢任何评论、建议或改进。

CProgressFX 和 CHourglassFX - CodeProject - 代码之家
© . All rights reserved.