MFC 播放动画。
来源:互联网 发布:app免费下载软件 编辑:程序博客网 时间:2024/06/07 03:02
原本用CxImage实现这个loading的效果的。但是在后续工作中用到boost::log。
他们中有一些冲突。如果两个都是设置了文件路径:
cximage动态加载。log设置写路径之后。
他们分别需要下面设置为不同的值,因为字符集采用Unicode,所以编译cximage相关dll的时候设置为否,同时用的时候也要用否。
然而log中需要用是。真他妈蛋疼。
因为不想再用cximage(当然可以用流的方式加载,但是不想再出差错,要加快进度),采用的方式如下。
1.用flash把gif导出序列(*.png)。
2.在vs中添加资源。
3.然后写上这个代码。
这里不能用loadfromresource,因为这个只能处理bmp文件,如果用png,需要采用从流中加载的方式。
写得比较菜。
void CTSLodingDialog::DrawBitmap(bool isFirst/*=false*/){HINSTANCE hInst = AfxGetResourceHandle();HRSRC hRsrc = ::FindResource (hInst,MAKEINTRESOURCE(IDB_PNG1+m_nFrame),_T("PNG")); if(!hRsrc){return;}CImage image;auto len = SizeofResource(hInst, hRsrc);auto lpRsrc = (BYTE*)LoadResource(hInst, hRsrc);if (!lpRsrc){return ;}auto hMem = GlobalAlloc(GMEM_FIXED, len);auto pmem = (BYTE*)GlobalLock(hMem);memcpy(pmem,lpRsrc,len);IStream* pstm;CreateStreamOnHGlobal(hMem,FALSE,&pstm);image.Load(pstm);GlobalUnlock(hMem);pstm->Release();FreeResource(lpRsrc);if(!image.IsNull()){auto pDC = this->GetDC();if(image.Draw(pDC->m_hDC,0,0)){if(isFirst){m_pictureCtrl.MoveWindow(0,0,image.GetWidth(), image.GetHeight());this->MoveWindow(0,0,image.GetWidth(), image.GetHeight());CenterWindow();}++m_nFrame;m_nFrame = m_nFrame >= 17 ? 0 : m_nFrame;}this->ReleaseDC(pDC);}image.Destroy();//这里加上,不然泄漏}
0 0
- MFC 播放动画。
- MFC实现Flash动画播放
- MFC实现Flash动画播放
- MFC动画
- PPt播放窗口嵌入到MFC窗口中,幻灯片动画不能正确播放,模拟鼠标单击消息
- 解决MFC做的工程项目刷新速度慢导致动画播放卡的问题
- 播放GIF动画
- 开机播放动画
- 播放动画文件
- Android播放gif动画
- Android 播放Gif 动画
- Android播放Gif动画
- Sliverlight 动画循环播放
- Android 播放Gif 动画
- 播放、停止gif动画
- android 动画自动播放
- 帧动画自动播放
- Android 播放Gif 动画
- C/C++系列——函数声明全解析
- Android6.0 PackageManagerService卸载应用
- 8266开发过程
- eclipse中ctrl+alt+方向键快捷键和显卡快捷键冲突解决办法
- 线性表应用举例
- MFC 播放动画。
- Android的零散知识
- 移动公司面试反思
- Java线上应用故障排查之一:高CPU占用
- Java开发中的23种设计模式详解(转)
- 二、OutOfMemoryError内存溢出
- Unity3D研究院之Jenkins的使用(七十八)
- js 闭包与原型
- K-近邻算法