CBrush *pBrush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
dc->SelectObject(pBrush);
dc.FillRect(&Rect,pBrush);

解决方案 »

  1.   

    不要白色,你可以要其他颜色啊你的描述不清楚你最好把你要的效果图用PHOTOSHOP先处理个样板发上来才知道怎么帮你
      

  2.   

    mfc 程序。一个绘图的程序,绘图背景用pic控件贴图,setbitmap设置背景图片 showwindow控制隐藏显示。 要求在两个场景可以分别绘图,在切换场景的时候能分别把刚才在此场景绘制过的图形显示出来。因此就需要两个兼容dc做一个双缓冲机制,而我做的切换动作时先showwindow显示背景,再贴兼容dc画过的内容,这样,兼容dc的画刷如果是白色,那就全把背景覆盖掉了。
    就是这样;
      

  3.   

    你的思路严重的有问题
    既然,你的背景只是一幅图片
    那么,为什么要用pic控件呢?
    如果是我,绝对不用你这种非常不靠谱的做法比如,绘图窗口是X(绝对不要在X上用另外一个窗口类,那样非常愚蠢)
    那么,我会设置一个全局指针变量pic指向对应的背景图
    另外有一个数据结构draw保存绘制的图形在X窗口的OnPaint()里,只需要做两件事情
    {
       1,显示背景图pic;
       2,绘画draw保存的图形;
    }而切换场景的代码非常简单
    比如
    void ChangeBack(int index)
    {
        switch(index)
        {
             case 0:pic对应到第一幅图;break;
             case 1:pic对应到第二幅图;break;
             .........
         }
        Invalidate通知窗口重画
    }