使用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? 展开
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? 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询