+ -
当前位置:首页 → 问答吧 → graphics CDC混用

graphics CDC混用

时间:2011-11-30

来源:互联网

GDI+ graphics CDC混用可以吗
我想用graphics在memDC上画,然后用bitblt,将memDC中的拷贝到pDC上,这种做法可行吗?
我写的好像不行的说,我想问下,是否GDi+在graphics上画的图,在graphics销毁掉之后就被清空了?

作者: wyw9122   发布时间: 2011-11-30

当然可以.Graphics的其中一个构造函数就要求HDC的参数.
给你几个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);

作者: yuucyf   发布时间: 2011-11-30

我估计也是可以
问题在于是否把graphics变量销毁掉了之后图就自动消失
引用 1 楼 yuucyf 的回复:

当然可以.Graphics的其中一个构造函数就要求HDC的参数.
给你几个Sample看看:
1)
BOOL bCrate = CBitmap pobj->CreateCompatibleBitmap);
CDC MemDC.CreateCompatibleDC(NULL);
MemDC.SelectObject(CBitmap pobj);
Graphics graphic(Mem……

作者: wyw9122   发布时间: 2011-11-30