先上示例代码: CDC* pdc=GetDC();
CDC dcmem;
dcmem.CreateCompatibleDC(pdc); CBitmap MemBitmap,*pOldBit;
MemBitmap.CreateCompatibleBitmap(pdc,cx,cy);
pOldBit=dcmem.SelectObject(&MemBitmap);
……
我想这几行代码我不写各位也都很清楚,不过还是贴出来更明白。以前我刚接触的时候,有人把这个MemBitmap比作是画布,没有画布怎么画画。当时也没弄明白,全当规矩记住的。
后来我知道CBitmap 对象里存着位图。稍微明白点了。
现在又想想,那CDC对象的内存本身为什么不是“画布”?这块内存有多大? CBitmap MemBitmap做“画布”dcmem.CreateCompatibleDC(pdc) 所创建的“容器”到底是起个什么作用? 他装的是什么呀

解决方案 »

  1.   

    当CDC创建后要 SelectObject(&MemBitmap)一个bitmap才可以画东西的
    ,以前我也搞不明白要这样!
      

  2.   

    我感觉也是记住的我现在又似乎有点了解了,办法就是阅读MSDN~
      

  3.   

    内部的机制不用管,内存DC要选入位图,内存DC的大小由选入的位图决定
      

  4.   

    以前我刚接触的时候,有人把这个MemBitmap比作是画布,没有画布怎么画画。当时也没弄明白,全当规矩记住的。
    =======>像素要放的地方
    后来我知道CBitmap 对象里存着位图。稍微明白点了。===>按照CBitmap设置MemBitmap
    现在又想想,那CDC对象的内存本身为什么不是“画布”?这块内存有多大?
    =====>将画布打印出去(印刷机),内存和CBitmap一样大 CBitmap MemBitmap做“画布”dcmem.CreateCompatibleDC(pdc) 所创建的“容器”到底是起个什么作用? 他装的是什么呀=====>将画布内容设定到印刷机中====>比俞是有缺陷的
      

  5.   

    先把你要画的内容全部画到兼容DC里面, 然后直接把兼容DC拷贝过去。
      

  6.   

    借这兄弟的贴  想问下  这样从兼容DC里画然后拷到DC为什么就更快呢???