内存DC使用

内存DC可以加快绘制速度,避免在刷新频率比较高的时候,出现空白闪烁的情况

    CDC dcMem;
    dcMem.CreateCompatibleDC(pDC);
    CBitmap bitmap;
    bitmap.CreateCompatibleBitmap(pDC, _windowWidth, _windowHeight);


    CBitmap *oldBitmap = dcMem.SelectObject(&bitmap);

之后就可以使用内存DC进行绘制,在绘制完之后需要将内存DC上的bitmap拷贝到DC上

    pDC->BitBlt(0, 0, _windowWidth, _windowHeight, &dcMem, 0, 0, SRCCOPY);

最后最为重要的一点是要释放bitmap、内存DC,否则在进行多次绘制之后DC的内存会被用完,出现不可预知的错误,另外对于所有create....类似的函数,都应该注意是否需要进行delete.....操作。

    dcMem.SelectObject(oldBitmap);
    bitmap.DeleteObject();
    dcMem.DeleteDC();

猜你喜欢

转载自blog.csdn.net/qq_16334327/article/details/84890235
DC