代码改变世界

创建内存DC绘图无效

2012-07-16 11:46  九佛仔  阅读(373)  评论(0)    收藏  举报
在对话框画图时,想将要的内容先保存在内容里。所以用到了内存DC。
但是将内存DC复制到屏幕DC无效果?

代码如下:
        CDC *pdc = GetDC();
        CDC MemDC; //首先定义一个内存显示设备对象
        CString str="wewe";
        MemDC.CreateCompatibleDC(pdc);
        MemDC.SetTextColor(RGB (255,0,0));  
        MemDC.TextOut(1,1,str,str.GetLength());
        pdc->BitBlt(0,0,300,300,&MemDC,0,0,SRCCOPY);

        这样画到窗口上没效果.

原因:

CreateCompatibleDC 是创建兼容DC,这个DC创建出来以后只有 1X1 像素,要创建一个兼容位图,然后把兼容位图选入兼容DC才可以。


解决办法:

        CDC *pdc = GetDC();
        CDC MemDC; //首先定义一个内存显示设备对象
        CString str="wewe";
        MemDC.CreateCompatibleDC(pdc); //创建兼容设备dc
        CBitmap cBitmap;
        cBitmap.CreateCompatibleBitmap(pdc, 200, 300);
        MemDC.SelectObject(&cBitmap);
        MemDC.SetTextColor(RGB (255,0,0));  
        MemDC.TextOut(1,1,str,str.GetLength());
        pdc->BitBlt(0,0,300,300,&MemDC,0,0,SRCCOPY);
 
来自 [萝岗九龙社区] http://www.gzzsc.net