MFC 新手问题!!

来源:百度知道 编辑:UC知道 时间:2024/05/23 00:22:57
一个简单的程序,在WM_TIMER消息下执行两幅图片在客户区交替显示,一开始还正常,可过了一会儿后弹出消息框,说“必须的资源无法得到”,这个问题可能是怎么引起的?又如何解决?望高手指点!!!

我这有个图片互换函数,你可以参考下:
void CDrawRect::LoadMove2(CDC *pDC, int nID1, int nID2,CRect rect,COLORREF color)
{
CDC m_pdcMemory[2];
CBitmap m_pBitmap[2];
CBitmap* pOldBitmap[2];
m_pBitmap[0].LoadBitmap(nID1);
m_pBitmap[1].LoadBitmap(nID2);

BITMAP bm;
for(int i=0;i<2;i++)
{
m_pdcMemory[i].CreateCompatibleDC(pDC);
pOldBitmap[i]=m_pdcMemory[i].SelectObject(&m_pBitmap[i]);
m_pBitmap[i].GetObject(sizeof(bm), &bm);
m_sizeSource.cx = bm.bmWidth;
m_sizeSource.cy = bm.bmHeight;
m_sizeDest = m_sizeSource;
pDC->DPtoLP(&m_sizeDest);
}
TransparentBlt(pDC->m_hDC, rect.left, rect.top, rect.Width(), rect.Height(),m_pdcMemory[index=(index+1)%2].m_hDC,0,0, bm.bmWidth, bm.bmHeight, color); //透明化函数
m_pdcMemory[index=(index+1)%2].SelectObject(*pOldBitmap[index=(index+1)%2]);
m_pdcMemory[0].DeleteDC();
m_pdcMemory[1].DeleteDC();
m