.

解决方案 »

  1.   

    内存DC可以有多个,
    如:
    CDC Mem1;
    CDC Mem2;
    Mem1.CreateCompatibleDC(NULL);// NULL 表示默认地以screen兼容
    Mem2.CreateCompatibleDC(NULL);
    但用后最好删了如果你先前是BitBlt()到Dialog上的话,你可以先响应WM_ERASEBKGND,然后在你想"清空上一幅位图的图象...."的时候调用OnEraseBkgnd(pDc)(pDc--Dialog的DC指针) ,或者你直接SendMessage(hWnd,WM_ERASEBKGND....)  (hWnd--Dialog handle); 个方法主要是让Windows 帮你"清空",当然你可以自已清空,
    CBitmap bitmap;
    bitmap.CreateCompatibleBitmap(pDc,iWidth,iHeight); //(pDc--Dialog的DC指针,后面的两个是位图的宽与高,可以适当取一个直)
    CDC Mem;
    Mem.CreateCompatibleDC(NULL);
    Mem.SelectObject(&bitmap);
    pDc->BitBlt(0,0,iWidth,iHeight,&Mem,iWidth2,iHeight,SRCCOPY); // 可把一个空位图贴上去当然了,也可以bitmap.LoadBitmap(IDB_XXX); 把特定的位图Load 入位图类对像,这样就可以用一个特定的位图"清空...."
      

  2.   

    什么叫清空?你直接往上画图,不就覆盖了吗?
    内存DC就是DC对象变量,随便你用多少个,只要系统受得住。