下载地址:
点击打开链接,里面有PictureEx_demo可供参考
CPictueEx不仅可以显示GIF(包括GIF动画),还可以显示JPEG、BMP、WMF、ICO、CUR.
新建一个基于对话框的工程。
给你的对话框中加入一个静态文本控件(Static Text)或者图片控件(Picture Control);
利用ClassWizard给控件关联一个变量。类型是:CPictureEx的。
如:
CPictureEx m_gif;
DDX_Control(pDX, IDC_STATIC_PICTURE, m_gif);
当然,别忘了在你的工程中加入PictureEx.h和PictureEx.cpp文件。
并在头文件中包含“PictureEx.h”头文件。
在OnInitDialog里加入下面代码: If(m_gif.Load("****.gif")) m_gif.Draw();
运行你的程序
装载一个图片后,调用CPictureEx[Wnd]::Draw()显示它。
如果是一个GIF动画,Draw函数会建立一个背景线程去播放动画;
如果是一个静止的图片,它会被OleLoadPicture/IPicture直接显示。
你可以调用CPictureEx[Wnd]::Stop()在任意时刻停止播放线程。
如果你不但想终止播放线程,还想释放资源,使用 CPictureEx[Wnd]::UnLoad()。
注意:CPictureEx[Wnd]::Load自动调用Unload()函数。
缺省地,背景被COLOR_3DFACE填充(即对话框的背景颜色)。
如果你需要改变背景颜色,可在调用CPictureEx[Wnd]::Load()后调用CPictureEx[Wnd]::SetBkColor(COLORREF)。
列出了些常用的成员函数。其他的自己去摸索吧!
1.BOOL Load(...) - 装载一个GIF并为显示准备一个对象
2.BOOL Draw() - 显示GIF或GIF动画
3.void Stop() - 停止动画
4.void UnLoad() - 停止动画并释放所有资源
5.void SetBkColor(COLORREF) - 设定背景颜色(透明区域)
6.COLORREF GetBkColor() - 取得背景颜色
7.BOOL IsGIF() - 判断是否GIF
8.BOOL IsAnimatedGIF() - 判断是否GIF动画
9.BOOL IsPlaying() - 判断动画是否在播放中
10.SIZE GetSize() - 获取当前图的尺寸
11.int GetFrameCount() - 获取当前动画的帧数
12.BOOL GetPaintRect(RECT *lpRect) - 获取当前绘图区域
13.BOOL SetPaintRect(const RECT *lpRect) - 设定绘图区域
14.CPictureEx[Wnd]::Load有三个版本的重载函数:
15.BOOL Load(LPCTSTR szFileName);//此版本重载函数的参数是图的路径,返回值是成功已否的布尔值.
CPictueEx不仅可以显示GIF(包括GIF动画),还可以显示JPEG、BMP、WMF、ICO、CUR.
新建一个基于对话框的工程。
给你的对话框中加入一个静态文本控件(Static Text)或者图片控件(Picture Control);
利用ClassWizard给控件关联一个变量。类型是:CPictureEx的。
如:
CPictureEx m_gif;
DDX_Control(pDX, IDC_STATIC_PICTURE, m_gif);
当然,别忘了在你的工程中加入PictureEx.h和PictureEx.cpp文件。
并在头文件中包含“PictureEx.h”头文件。
在OnInitDialog里加入下面代码: If(m_gif.Load("****.gif")) m_gif.Draw();
运行你的程序
装载一个图片后,调用CPictureEx[Wnd]::Draw()显示它。
如果是一个GIF动画,Draw函数会建立一个背景线程去播放动画;
如果是一个静止的图片,它会被OleLoadPicture/IPicture直接显示。
你可以调用CPictureEx[Wnd]::Stop()在任意时刻停止播放线程。
如果你不但想终止播放线程,还想释放资源,使用 CPictureEx[Wnd]::UnLoad()。
注意:CPictureEx[Wnd]::Load自动调用Unload()函数。
缺省地,背景被COLOR_3DFACE填充(即对话框的背景颜色)。
如果你需要改变背景颜色,可在调用CPictureEx[Wnd]::Load()后调用CPictureEx[Wnd]::SetBkColor(COLORREF)。
列出了些常用的成员函数。其他的自己去摸索吧!
1.BOOL Load(...) - 装载一个GIF并为显示准备一个对象
2.BOOL Draw() - 显示GIF或GIF动画
3.void Stop() - 停止动画
4.void UnLoad() - 停止动画并释放所有资源
5.void SetBkColor(COLORREF) - 设定背景颜色(透明区域)
6.COLORREF GetBkColor() - 取得背景颜色
7.BOOL IsGIF() - 判断是否GIF
8.BOOL IsAnimatedGIF() - 判断是否GIF动画
9.BOOL IsPlaying() - 判断动画是否在播放中
10.SIZE GetSize() - 获取当前图的尺寸
11.int GetFrameCount() - 获取当前动画的帧数
12.BOOL GetPaintRect(RECT *lpRect) - 获取当前绘图区域
13.BOOL SetPaintRect(const RECT *lpRect) - 设定绘图区域
14.CPictureEx[Wnd]::Load有三个版本的重载函数:
15.BOOL Load(LPCTSTR szFileName);//此版本重载函数的参数是图的路径,返回值是成功已否的布尔值.
16.BOOL Load(HGLOBAL hGlobal, DWORD dwSize);//此版本的参数是GlobalAlloc使用GMEM_MOVABLE标记分配的全局内存块的句柄及其大小。该函数不会释放内存,所以记得用GlobalFree释放内存。
17.BOOL Load(LPCTSTR szResourceName,LPCTSTR szResourceType);//此版本从资源中获取图片名和图片类型。例如:
m_Picture.Load(MAKEINTRESOURCE(IDR_MYPIC),_T("GIFTYPE"));