GDI+ graphics CDC混用可以吗
我想用graphics在memDC上画,然后用bitblt,将memDC中的拷贝到pDC上,这种做法可行吗?
我写的好像不行的说,我想问下,是否GDi+在graphics上画的图,在graphics销毁掉之后就被清空了?
我想用graphics在memDC上画,然后用bitblt,将memDC中的拷贝到pDC上,这种做法可行吗?
我写的好像不行的说,我想问下,是否GDi+在graphics上画的图,在graphics销毁掉之后就被清空了?
解决方案 »
- 关于用VS2005制作安装程序的问题
- ADO访问SQL sever数据库当前记录集不支持更新,这可能是程序提供的限制,也可能是选定锁定类型的限制。高分请大家帮忙解答。
- 类似VC6.0调试窗口的自动滚动条问题
- 如何把客户坐标转换为世界坐标?
- 再次发贴请教(急)bmp压缩jpg,顶者有分
- 如何删除一个托盘图标?我只是知道托盘图标的显示文字 (tip text)
- 如何按下一个按钮后使其变为灰色(无效)
- CLeftView中对话框的问题
- 怎么样有CListCtrl显示m_pSet中的数据?
- 请问在VC中能否通过IDE环境直接定制菜单资源的OwnerDraw属性?
- 神啊,菜鸟的悲哀
- cwebbrowser.Navigate问题
给你几个Sample看看:
1)
BOOL bCrate = CBitmap pobj->CreateCompatibleBitmap);
CDC MemDC.CreateCompatibleDC(NULL);
MemDC.SelectObject(CBitmap pobj);
Graphics graphic(MemDC.GetSafeHdc());
graphic.Clear(::Color::White);
graphic.DrawImage(Bitmap, left, top, right, bottom);
dc.BitBlt(0, 0, Width, Height, &MemDC, 0, 0, SRCCOPY);2)
Graphics gs(dc.m_hDC);
SolidBrush sBrush(Color(255, 0, 1));
Pen curvePen(Color(255, 0, 1), 1.0);
gs.DrawLine(&curvePen, 1,1, 20, 20);
gs.DrawRectangle(&curvePen, Rect(0, 0, 100, 200));
gs.ReleaseHDC(dc.m_hDC);
问题在于是否把graphics变量销毁掉了之后图就自动消失
“ if(flag==0)//第一次执行时初始化
{
memDC1.CreateCompatibleDC(pDC);
memDC2.CreateCompatibleDC(pDC);
gr1=Graphics::FromHDC(memDC1.GetSafeHdc());
gr2=Graphics::FromHDC(memDC2.GetSafeHdc());
times=1;
width=wywlist.getWidth();
height=wywlist.getHeight();
this->GetClientRect(&rect);
midPoint.x=rect.Width()/2;
midPoint.y=rect.Height()/2;
flag=1;
}
wywlist.readFile1(gr1,"china.zb1");
wywlist.readFile2(&memDC1,"china.zj1");
copyDC(times);
wywlist.readFile3(gr2,times,"china.zb1");
this->GetClientRect(&rect);
pDC->BitBlt(0,0,rect.Width(),rect.Height(),&memDC2,(int)(midPoint.x-((rect.Width())/2/times)),(int)(midPoint.y-((rect.Height())/2/times)),SRCCOPY);//将memDC2中的指定坐标输出到当前DC”