读书人

vc绘丹青不出

发布时间: 2013-02-24 17:58:56 作者: rapoo

vc绘图画不出
本帖最后由 luck_good 于 2013-02-18 21:27:15 编辑 在vc2008,我新建一个对话框程序,拉一个按钮,在按钮的事件函数中加上下面的代码

CDC *pDC=GetDC();
CDC *pMemDC=new CDC;
pMemDC->CreateCompatibleDC(pDC);
pMemDC->DrawText("hello",CRect(0,0,100,100),DT_LEFT);
StretchBlt(pDC->m_hDC,0,0,100,100,pMemDC->m_hDC,0,0,100,100,SRCCOPY);


为什么在对话框上没有画出来Hello呢
直接使用pDC->DrawText("hello",CRect(0,0,100,100),DT_LEFT);可以画出来,但是为什么上面的先在内存设备上绘图再贴在pDC上就不行呢
[解决办法]
CRect rect;//定义成你需要的区域大小

CDC memdc; //画布对象
CBitmap bitmap; //内存位图
memdc.CreateCompatibleDC(pDC); //创建与显示设备兼容的位图
bitmap.CreateCompatibleBitmap(pDC, rect.Width(), rect.Height()); //加载位图
CBitmap *pOldBit=memdc.SelectObject(&bitmap); //将位图选入设备
memdc.FillSolidRect(0,0,rect.Width(),rect.Height(),RGB(255,255,255));

.....画图用memdc(内存DC)

pDC->BitBlt(0, 0, rect.Width(), rect.Height(), &memdc, 0, 0, SRCCOPY);
//在内存里画完然后用BitBlt贴到屏幕上
bitmap.DeleteObject();
memdc.DeleteDC(); //释放内存
ReleaseDC(pDC);

读书人网 >VC/MFC

热点推荐