永发信息网

使用BitBlt把图像存入内存,再调出来

答案:1  悬赏:20  手机版
解决时间 2021-02-15 20:41
  • 提问者网友:鼻尖触碰
  • 2021-02-15 07:50
CDC *m_pDC = new CClientDC(GetDlgItem(IDC_CAMUP));
CDC *m_pDC1 = new CClientDC(GetDlgItem(IDC_VIEW2));
CDC MemDC;
CBitmap MemBitmap;
MemDC.CreateCompatibleDC(NULL);
MemBitmap.CreateCompatibleBitmap(&MemDC, 320, 240);
CBitmap *pOldBit = MemDC.SelectObject(&MemBitmap);
MemDC.BitBlt(0, 0, 320, 240, m_pDC, 0, 0, SRCCOPY);
m_pDC1->BitBlt(0, 0, 320, 240, &MemDC, 0, 0, SRCCOPY);
现在IDC_CAMUP里已经有图像,我想把它暂存在内存里,然后(过一段时间)再调出来。
上面的代码只能在IDC_VIEW2里显示一个黑背景,不能复制图像。为什么?
我知道了,把:
MemBitmap.CreateCompatibleBitmap(&MemDC, 320, 240);
改成:
MemBitmap.CreateCompatibleBitmap(m_pDC, 320, 240);
就好了。
WHY?
最佳答案
  • 五星知识达人网友:笑迎怀羞
  • 2021-02-15 09:29
MemBitmap.CreateCompatibleBitmap(&MemDC, 320, 240);
创建的是和MemDC兼容的
MemBitmap.CreateCompatibleBitmap(m_pDC, 320, 240);
创建的是和 m_pDC兼容的,二者来源不一样,因此创建出来的东西也有区别了。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯