最近学习Win32xx的使用,想要实现一个GIF控件于是学习一下(其实Win32xx是由自带的类的。),主要通过自绘来实现,主要用到了下面的几个知识点:
- CStatic需要SS_OWNERDRAW,CButton需要BS_OWNERDRAW。
- 通过gdiplus读取gif图片的帧,然后通过OnTimer来切换下一帧。
对于添加样式在Win32xx下可以通过重载PreCreate方法,代码如下:
CGIFAnimate继承CStatic类,Win32xx没有OnDrawItem方法,所以查看源码发现可以重载OnMessageReflect方法,然后自己映射到OnDrawItem方法,下面是完整代码:
测试代码以及演示:
截图:
20160908更新:
- 更新下代码以及演示图片。
- 控件必须添加ID,CWnd是通过ID来获取句柄然后把消息分发到子窗口的OnMessageReflect方法的。
参考链接:
http://www.codeproject.com/Articles/27387/Play-GIF-using-GDI
Win32xx源码以及例子代码.
一堆复制粘贴的文章.
转载请注明: 本文《Win32xx下使用gdiplus编写GIF控件》来源于bstaint的博客
没有评论:
发表评论