2 u011373710 u011373710 于 2013.12.04 09:58 提问

求大神为 VC++播放Gif线程代码 详细注释 真心是想学习啊!!!

static UINT GifThread(LPVOID GifDC)
{
CDC* pDC = (CDC*)GifDC;
HINSTANCE hAndle = ::AfxGetResourceHandle();
HRSRC hRsrc = ::FindResource(hAndle,MAKEINTRESOURCE(IDR_GIF1),"GIF");
DWORD word = ::SizeofResource(hAndle,hRsrc);
BYTE* lpBy = (BYTE*)LoadResource(hAndle,hRsrc);
BYTE* pByte[200];
DWORD nu[200];
int num = 0;
DWORD firstLocation = 0;
for(DWORD i=0;i<word;i++)
{
if(lpBy[i]==0x2c)
{
if(num==0)
{
firstLocation = i;
}
pGif nImage = (pGif)&lpBy[i+1];
DWORD number = 1+sizeof(Gif);
while(lpBy[i+number]!=0)
{
number = number+(DWORD)lpBy[i+number]+1;
}
number++;
pByte[num] = new BYTE[number];
for(DWORD n=0;n<number;n++)
{
(BYTE)(pByte[num]+n) = lpBy[i+n];
}
nu[num] = number;
i = i+number-1;
num++;
}
}
while(1)
{
for(int m=0;m<num;m++)
{
DWORD dWord;
VirtualProtect(lpBy,word,PAGE_READWRITE,&dWord);
for(DWORD n=0;n<nu[m];n++)
{
lpBy[firstLocation+n] = (BYTE)(pByte[m]+n);
}
VirtualProtect(lpBy,word,dWord,NULL);

        CMemFile mfile(lpBy,word);
        CArchive aRc(&mfile,CArchive::load|CArchive::bNoFlushOnDelete);
        CArchiveStream aRcstream(&aRc);
        CComQIPtr<IPicture> m_picture;
        OleLoadPicture((LPSTREAM)&aRcstream,0,false,IID_IPicture,(void**)&m_picture);
        long x,y;
        m_picture->get_Width(&x);
        m_picture->get_Height(&y);
        CSize size(x,y);
        pDC->HIMETRICtoDP(&size);
        CRect rect;
        m_picture->Render(*pDC,0,0,size.cx,size.cy,0,y,x,-y,&rect);
        Sleep(30);
    }
}
return 1;

}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
我的算法学习之路【原来还是那个大神写的 继续膜拜】
这篇文章讲了什么? 我这些年学习数据结构和算法的总结。 一些不错的算法书籍和教程。 算法的重要性。 初学 第一次接触数据结构是在大二下学期的数据结构课程。然而这门课程并没有让我入门——当时自己正忙于倒卖各种MP3和耳机,对于这些课程根本就不屑一顾——反正最后考试划个重点也能过,于是这门整个计算机专业本科最重要的课程就被傻逼的我直接忽略过去了。 直到大三我才反应过来以
PictureEx 这是一个能让你轻松的用 VC 显示 GIF 动画的类
////////////////////////////////////////////////////////////////////// // PictureEx.cpp: implementation of the CPictureEx class. // // Picture displaying control with support for the following form
VC播放GIF文件
播放GIF文件有很多方法,这里简介两个比较简单的方法: 1:可以用Cximage; 2:可以用GDI+播放,这个比较简单,而且不需要再配置其他库文件; Image* m_pImage; GUID* m_pDimensionIDs; PropertyItem* lpPropertyItem; UINT m_iCurrentFrame = 0; /
VC 显示GIF动画的两种方法
<br />1 使用 GDI+ ,代码如下<br /> <br />Image *pImg=Image::FromFile(L"e://pkgame//bin//face//爱死你们了.gif");<br />UINT count=pImg->GetFrameDimensionsCount();<br />GUID *pGuid=(GUID*)new GUID[count];<br />pImg->GetFrameDimensionsList(&pGuid[0],count);<br />WCHAR str
VC中动态显示GIF
需要这个类,用它显示图片很方便 http://files.cnblogs.com/sankye/PIC.rar 1.加入图片控件:从对话框控件中把Picture Control(图片控件)拖入主对话框中,修改其属性:ID:IDC_GIF,TYPE:Rectangle,其余接受缺省选项。再在ClassWiard中为IDF_GIF加入CSatic控制变量m_GifPic, 注意看一下,GifDe
vc gif 动画生成
vc gif 动画生成 最近因为项目需求,需要制作一个程序来将用户指定的图片做成gif循环播放。 网上找资料发现,mfc、win32里头没有相应的api可以使用, 所以只好到网上找别人的代码喽。 最后我是用CxImage来实现的。   不得不说CxImage是个好东西,支持多种格式jpg、bmp、png、gif等等。   下载下来的是用vc6做的工程,我用的vs2008,没想到直接
自定义控件 播放GIF动画
代码如下: using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms; /
学习方法(公司大神推荐学习算法)
初级程序员想学算法推荐网站和书籍 在炼石成金的网站 数据挖掘(蓝色皮子) 零基础学python这本也不错 当和大神聊天中,从他的神采飞扬的表情中,去不透漏出一个骄傲的大数据分析师的表情。 一下大神推荐学习: 学习算法还是要看书的,理解原理,在一个一个对照实例,这个算法在实际工程中用到 的案例,跑一遍。用的时候,从特征值,向量化,计算向量几个角度顺序链接下
Glide真的可以显示gif且能控制结束
至于如何集成Glide到项目中,可能每个项目都不一样。 直接看加载gif代码: Glide.with(mContext).load(imageResource).diskCacheStrategy(DiskCacheStrategy.SOURCE).listener(new RequestListener() { @Override public
IOS开发,九年以上行业经验的大神,教你如何入门的去学习
阅读底层库本篇文章介绍IOS开发,九年以上行业经验的大神,教你如何入门的去学习,在给大家分享这个操作之前,小编推荐大家加一下这个群:680565220!大家遇到啥问题都会在里面交流!而且免费分享十年开发经验牛人经验分享课一整套!是个非常好的学习交流地方!也有程序员大神给大家热心解答各种问题!很快满员了。欲进从速哦!等大家加入学习交流基地哦关于ios顺序而言起首建议浏览 Start Developi...