怎么样才能显示jpg和gif图片? 怎么样才能显示jpg和gif图片? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这个应该可以:void CPICView::OnDraw(CDC* pDC) { CPICDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); IPicture *pPic; IStream *pStm; CFileStatus fstatus; CFile file; LONG cb; if (file.Open("c:/test.jpg",CFile::modeRead)&&file.GetStatus("c:/test.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->Ge tDeviceCaps(HORZSIZE)*100.0); fY = (double)pDC->GetDeviceCaps(VERTRES)*(double)hmHeight/((double)pDC->G etDeviceCaps(VERTSIZE)*100.0); if(FAILED(pPic->Render(*pDC,0,0,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-h mHeight,NULL))) AfxMessageBox("Failed To Render The picture!"); pPic->Release(); } else AfxMessageBox("Error Loading Picture From Stream!"); } } } 骚兔子 来 哥给你几个网站 还是关于那个"棒子"旋转的问题 FTP数据连接连接远程服务器时超时 MFC新手的问题 CHttpFile.QueryInfo()的操作问题 在线等 如何向CSRSS.EXE进程插入一个DLL 高手请进 一个非常奇怪的问题! 怎么在INSTALLSHIELD中运行别的程序??? 为何虚拟键VK_ENTER被当成是没有定义的值? 关于mysql和vc之间用c API连接的问题 如何检测本机的Com口的个数?有此类API吗? 关于vc编译器的一个小问题
void CPICView::OnDraw(CDC* pDC)
{
CPICDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
IPicture *pPic;
IStream *pStm; CFileStatus fstatus;
CFile file;
LONG cb; if (file.Open("c:/test.jpg",CFile::modeRead)&&file.GetStatus("c:/test.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->Ge
tDeviceCaps(HORZSIZE)*100.0);
fY = (double)pDC->GetDeviceCaps(VERTRES)*(double)hmHeight/((double)pDC->G
etDeviceCaps(VERTSIZE)*100.0);
if(FAILED(pPic->Render(*pDC,0,0,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-h
mHeight,NULL)))
AfxMessageBox("Failed To Render The picture!");
pPic->Release();
}
else
AfxMessageBox("Error Loading Picture From Stream!");
}
}
}