说说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)是一款绿色软件,主要面向经常使用电脑的朋友。它提供了各种提升办公效率的小功能,同时操作上尽可能地简单方便。
我想:你值得拥有。
相关推荐
- 对话框管理器第二章:创建框架窗口
- Posted on 07月24日
- 深度理解:TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- Posted on 08月13日
- 为什么文本文件以Ctrl+Z结尾
- Posted on 01月01日
- 错误信息:No module named flask
- Posted on 04月23日
评论已关闭。