图片定时更替

图片定时更换
void CShowMapDlg::OnTimer(UINT nIDEvent) 
{
// TODO: Add your message handler code here and/or call default
CBitmap bitmap,bitmap1;
CDC memeDC;
CDC *pDC=GetDC();
CRect rect;
switch (nIDEvent)
{
case 0:

bitmap.LoadBitmap(IDB_BITMAP1);
        memeDC.CreateCompatibleDC(pDC);
memeDC.SelectObject(&bitmap);
    pDC->BitBlt(0,0,300,300,&memeDC,0,0,SRCCOPY);
break;
case 1:
Invalidate();
UpdateWindow();
break;
case 2:
bitmap1.LoadBitmap(IDB_BITMAP2);
memeDC.CreateCompatibleDC(pDC);
memeDC.SelectObject(&bitmap1);
pDC->BitBlt(0,0,600,600,&memeDC,0,0,SRCCOPY);
break;
}
    
    ReleaseDC(pDC);
memeDC.DeleteDC();   //释放DC,即内存。
CDialog::OnTimer(nIDEvent);
问题就是第一张图片显示的时候没法更换第二张图片,程序执行完第一张图片始终在前面没法换下来怎么换?就是定时执行到case 2:要把图片换下来,请问还差什么还没写?谢谢

------解决方案--------------------
1. SetTimer 有几个?
要是轮流的 画: static int count=0;
可以 改变 switch (count)
case 0:
count ++;
case 1:
count ++;
....
------解决方案--------------------
lz这样写代码也太那个了。
给你个建议

定时器事件:
轮流加载图片,
或者获取预先加载,定时器负责切换图片如: pBmp=BmpA/pBmp=BmpB 一句代码

OnPaint事件:
负责将图片显示到窗口 pBmp-->pDC
------解决方案--------------------
一、有OnPaint却非要在其他地方用GetDC
    这是有神经病的征兆
二、有变化的地方加几个类的成员变量死不了人的
    比如,int w,h;表示图片宽和高,DWORD pID;表示图片ID
    于是: 
void CShowMapDlg::OnTimer(UINT nIDEvent) 
{
    switch (nIDEvent)
    {
       case 0:
         w=300;h=300;pID=IDB_BITMAP1;Invalidate();break;
       case 1:
         w=600;h=600;pID=IDB_BITMAP2;Invalidate();break;
     }
     CDialog::OnTimer(nIDEvent);
}     

void CShowMapDlg::OnPaint()
{
    CPaintDC dc(this);  
    CDC memDC;
    CBitmap bitmap;
 
    bitmap.LoadBitmap(pID);
    memDC.CreateCompatibleDC(&dc);
    memDC.SelectObject(&bitmap);
    dc.BitBlt(0,0,w,h,&memDC,0,0,SRCCOPY);
    
    memDC.DeleteDC();   //释放DC,即内存。
    bitmap.DeleteObject();
}