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

CDC*m_pDC=newCClientDC(GetDlgItem(IDC_CAMUP));CDC*m_pDC1=newCClientDC(GetDlgItem(IDC_... 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?
展开
 我来答
mafangsan
2014-03-17 · TA获得超过1.2万个赞
知道大有可为答主
回答量:1万
采纳率:71%
帮助的人:2583万
展开全部
MemBitmap.CreateCompatibleBitmap(&MemDC, 320, 240);
创建的是和MemDC兼容的
MemBitmap.CreateCompatibleBitmap(m_pDC, 320, 240);
创建的是和 m_pDC兼容的,二者来源不一样,因此创建出来的东西也有区别了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式