网络上找到大神写的转换方法,不过就记下来,学习学习;

当然转成CImage之后就可以从CImage转换成HBITMAP 了

void DrawPic(CDC *pDC,char *buf,int len)
{
    //内存数据转换成流
    HGLOBAL hMem=GlobalAlloc(GMEM_FIXED,len);
    BYTE* pMem=(BYTE*)GlobalLock(hMem);
    memcpy(pMem,buf,len);
    IStream* pStream;
    HRESULT hr=CreateStreamOnHGlobal(pMem,FALSE,&pStream);

    //画图
    CImage img;
    img.Load(pStream);
    img.Draw(pDC->GetSafeHdc(),CPoint(0,0));

    //清理
    img.Destroy();
    pStream->Release();
    GlobalFree(hMem);
}

 

帖子里同样也有了个疑问就是 GlobaLock 之后没有 unlock 大神给出的解释是:“这里用的固定块,GMEM_FIXED,没必要unlock”

----------------------------------------------------------------------------------

http://bbs.csdn.net/topics/390973788

相关文章:

  • 2022-01-12
  • 2022-12-23
  • 2022-12-23
  • 2023-02-15
  • 2021-08-08
  • 2022-12-23
  • 2022-12-23
  • 2021-12-05
猜你喜欢
  • 2021-12-24
  • 2022-12-23
  • 2021-06-28
  • 2022-12-23
  • 2021-12-24
  • 2021-07-08
  • 2022-01-05
相关资源
相似解决方案