本帖最后由 theme2002 于 2015-03-13 11:07:37 编辑

解决方案 »

  1.   

    pBkDc里画好之后,要BitBlt到CClientDC    里面
      

  2.   

    我在Onpaint里把CPaintDC dc(this);替换为CClientDC dc(this);还是不行
      

  3.   

    pBkDc里画好之后,要BitBlt到CClientDC    里面
      

  4.   


    两者自己在MSDN上看看BitBlt的说明
      

  5.   

    这是Onpaint里的代码。RedarwDC和DoDrawBk就是上面写的代码。我最后是有把pBkDc拷贝到dc里去的,无论是CClientDC还是CPaintDC类。之前我有用GetDC在非Onpaint函数内是OK的,但我现在是想分图层了,却出现了问题。 CClientDC dc(this); // device context for painting
    // TODO: 在此处添加消息处理程序代码
    // 不为绘图消息调用 CFormView::OnPaint()
    SetRectClient();
    RedrawDC();
    DoDrawBk();
    dc.BitBlt(0, 0, rectClient.Width(), rectClient.Height(), pBkDc, 0, 0, SRCCOPY);
      

  6.   

    在外部函数内使用CDC画图是可以话的,只是现在多了一层内存DC却画不出来了,不知道为什么会这样
      

  7.   

    把完整的代码贴出来看看(Paint的整个函数)