创建内存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);
但是将内存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
浙公网安备 33010602011771号