一直对UI比较感兴趣,这几天做了2个动画效果,简单动画也就是图片的时间序列展示。
一个是窗口大小缓动变化的动画,一个是对窗口的alpha变换实现类似呼吸灯的功能,都很简单,技术上不难。
要实现更复杂的效果,用GDI是肯定不行的,得直接去搞显存。
然后看到很多处理文档的程序。像foxit pdf reader,都有zoom in,zoom out功能,思考自己实现,然后发现了这篇文章
设置GDI的map mode为 MM_ANISTROPIC,再设置view extent或者window extent即可,当然要做好没那么简单的。
于是乎,找了开源的Sumatra的源码看看,站在别人的肩膀上,可以少走很多弯路,唯一的问题是,要理解别人的思路,才能让自己有质的提高。
最重要的是WindowInfo和DisplayModel数据结构。下载源码编译debug版,可以在dgbview里面看到调试输出,继续学习里面的技巧和建模思路..........
PS:C++实在是效率和抽象的完美结合,我喜欢,掌握C++语言后,应该再拓宽自己的视野,了解程序设计语言的基本概念以及一些广为人知的概念,如闭包,lambda等。