转在VC中如果实现GIF的播放?
来源:百度文库 编辑:神马文学网 时间:2024/04/29 07:29:29
在VC中如果实现GIF的播放?
void CImageView::OnDraw(CDC* pDC)
{
CImageDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
IPicture *pPic;
IStream *pStm;
CFileStatus fstatus;
CFile file;
LONG cb;
if (file.Open("c:/a.jpg",CFile::modeRead)
&&file.GetStatus("c:/a.jpg", fstatus)
&&((cb = fstatus.m_size) != -1))
{
HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, cb);
LPVOID pvData = NULL;
if (hGlobal != NULL)
{
if ((pvData = GlobalLock(hGlobal)) != NULL)
{
file.ReadHuge(pvData, cb);
GlobalUnlock(hGlobal);
CreateStreamOnHGlobal(hGlobal, TRUE, &pStm);
if(SUCCEEDED(::OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID* )&pPic)))
{
OLE_XSIZE_HIMETRIC hmWidth;
OLE_YSIZE_HIMETRIC hmHeight;
pPic->get_Width(&hmWidth);
pPic->get_Height(&hmHeight);
double fX,fY;
fX = (double)pDC->GetDeviceCaps(HORZRES)*(double)hmWidth/((double)pDC->GetDeviceCaps(HORZSIZE)*100.0);
fY = (double)pDC->GetDeviceCaps(VERTRES)*(double)hmHeight/((double)pDC->GetDeviceCaps(VERTSIZE)*100.0);
if(FAILED(pPic->Render(*pDC,0,0,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-hmHeight,NULL)))
AfxMessageBox("Failed To Render The picture!");
pPic->Release();
}
else
AfxMessageBox("Error Loading Picture From Stream!");
}
}
}
else
AfxMessageBox("Can't Open Image File!");
}
转在VC中如果实现GIF的播放?
如何在vc中实现语音信息的采集
VC中实现历史记录的全面清除
VC中全屏窗口的实现
VC实现在状态栏中加入进度指示器 - cucme的日志 - 网易博客
linux宝库/vc/在VC 6.0开发中实现全屏显示
VC中三态选择树实现的终结者
VC中利用多线程技术实现线程之间的通信
VC中利用多线程技术实现线程之间的通信
在VC中彻底玩转Excel
Authorware gif动画的播放
在PPT中实现Flash播放控制 PowerPoint中把图片裁成任意形状
在word中实现表格的行列转置
在VC中调用 WebService
在VC中调用 WebService
在VC中编译、运行程序的小知识点
在VC++中嵌入MapX的集成二次开发
在VC++中嵌入MapX的集成二次开发
在俄国街头如果出了交通事故会发生的一幕 (12 pics+1gif)
VC中坐标系的建立 - VC - 转载
VC++内部COM插件的编程实现
在VC 中读写INI文件
ppt课件中实现视音频播放的控制_心清幽梦飛扬茁壮成长
在c#中使用vc++编写的封装在Dll中的类