FAQ200412:怎么在一个静态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);  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值