说说Shell动画控件的限制
在桌面外壳(Shell)通用控件库中,有一个大家不怎么用到的动画控件(Animation Control)。但是,动画控件只能支持很少一部分的AVI文件,也即:在动画控件中能使用的AVI文件必须符合下列要求:
> AVI文件必须是非交叉的(Non-Interleaved)。
> AVI文件只能包含一个视频流。
> AVI文件最好不要带上音频流。
> AVI文件最好不要使用调色板修改。
> AVI文件只能是未经压缩的,或者是使用BI_RLE8算法压缩的。
为什么会有如此多的限制?
因为我们设置动画控件的目的,主要是用来显示一些简单的动画。如果你手上有一个比较复杂的动画文件,则你应该考虑使用更加高级的动画控件,例如MCIWnd窗口类。
我们认为,将所有AVI高级播放功能添加到外壳动画控件中不会有任何好处,结果将只是 MCIWnd的一个毫无意义的克隆。
当我们设计复杂组件的简单版本的时候,请牢记一点:你必须抵制将原始组件的所有功能都添加到这个简单组件的诱惑。 如果你屈服了,那么你最终会得到一个组件,它可以完成原始组件所做的一切,即使你本来的目标是实现一个更简单的版本。
那你为什么写它? 你花了几个月的时间写一些已经存在的东西。
总结
有时候,为了给用户带来更多,我们需要舍弃一些东西。
少,即是多。
最后
Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《Limitations of the shell animation control》
最近我写了个东西
正如你们所知道的,拓扑梅尔智慧办公平台(Topomel Box)是一款绿色软件,主要面向经常使用电脑的朋友。它提供了各种提升办公效率的小功能,同时操作上尽可能地简单方便。
我想:你值得拥有。
相关推荐
- VS2019更新:更快的C++工程迭代构建
- Posted on 01月10日
- Visual Studio 17.5: 有关 C++ 的新特性预览
- Posted on 01月29日
- 函数设计心得:尽量避免布尔型参数
- Posted on 10月20日
- 一年一度的CppCon,它又来啦
- Posted on 09月07日
评论已关闭。