关于使用GDI+绘制png透明图片的问题
yyfzy 2007-04-13 02:55:51 我要在窗体上绘制png图片,并要实现透明效果。我使用Image加载图片后直接在窗体上绘制。
OnPaint()
{
CPaintDC dc(this);
Graphics graphics(hdc);
graphics.DrawImage(m_pImage, m_rcImg.left, m_rcImg.top, m_rcImg.right-m_rcImg.left, m_rcImg.bottom-m_rcImg.top);
}
这样能得到透明效果,但是有一个问题:
就是当我在下一个时间、在同一区域内绘制另外一张png图片的时候,原来的图片根本没有清除,在窗体上能透过新的图片的透明部分看到原来的图片(如果新图片的透明部分比原来的图片大的话)。这样就出现了重叠的效果,请问如何解决?
如果我直接使用Graphics 画在窗体上的dc上,而是先画到Memory DC,然后再贴到窗体dc上去,就会在图片透明的部分呈现出黑色,没有透明效果。
请问该如何处理这个问题??
谢谢!