iTimothy

君看一叶舟,出没风波里

0%

怎么在一个静态Picture控件中显示JPG文件

my example: HBITMAP CPicture::LoadImageFromID(UINT nIDRes) { try { HMODULE hInst=GetModuleHandle(NULL); LPCTSTR lpRes = MAKEINTRESOURCE(nIDRes); HRSRC hRsrc = ::FindResource(hInst, lpRes, “JPG”); if (NULL == hRsrc) return FALSE;

                   HGLOBAL  hGlobal  =  LoadResource(hInst,  hRsrc);
                   if  (NULL  ==  hGlobal)
                               return  FALSE;

                   DWORD  dwSize  =  SizeofResource(hInst,  hRsrc);
                   LPVOID  lpData  =  LockResource(hGlobal);
                   if  (NULL  ==  lpData)
                               return  FALSE;

                   //  alloc  memory  based  on  file  size
                   HGLOBAL  hJPG  =  ::GlobalAlloc(GMEM_MOVEABLE,  dwSize);
                   LPVOID  lpJGP  =  ::GlobalLock(hJPG);
                   memcpy(lpJGP,  lpData,  dwSize);
                   ::GlobalUnlock(hJPG);

                   //LPVOID  pvData  =  GlobalLock(hGlobal);
                   //_ASSERTE(NULL  !=  pvData);

                   //  read  file  and  store  in  global  memory

                   LPSTREAM  pstm  =  NULL;
                   //  create  IStream*  from  global  memory
                   HRESULT  hr  =  CreateStreamOnHGlobal(hJPG,  TRUE,  &pstm;);
                   _ASSERTE(SUCCEEDED(hr)  &&  pstm);

                   //  Create  IPicture  from  image  file
                   LPPICTURE  gpPicture;

                   hr  =  ::OleLoadPicture(pstm,  dwSize,  FALSE,  IID_IPicture,  (LPVOID  *)&gpPicture;);
                   _ASSERTE(SUCCEEDED(hr)  &&  gpPicture);
                   pstm->Release();

                   OLE_HANDLE  m_picHandle;

                   gpPicture->get_Handle(&m;_picHandle);
                   return  (HBITMAP)m_picHandle;
       }
       catch  (...)
       {

       }
       return  NULL;

} //call CPicture pic; HBITMAP hbmp=pic.LoadImageFromID(IDR_TODAY);//IDR_TODAY is jpg id (HBITMAP)::SendMessage(::GetDlgItem(this->m_hWnd,IDC_TODAY), STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hbmp);

支持原创技术分享,据说打赏我的人,都找到了女朋友!