熟悉GDI编程的同学帮忙看看,AlphaBlend 透明图像的绘制
- C# code
protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); IntPtr hdc = GetDC(Handle); mdc = CreateCompatibleDC(hdc); IntPtr hbmp = CreateCompatibleBitmap(hdc, ClientSize.Width, ClientSize.Width); SelectObject(mdc, hbmp); //从mdc中构建Graphics对象 Graphics g = Graphics.FromHdc(mdc); //SetBkMode(mdc, TRANSPARENT); g.DrawImage(_CloseBmp, ClientRectangle, 0, 0, _CloseBmp.Width, _CloseBmp.Height, GraphicsUnit.Pixel); AlphaBlend(hdc, 0, 0, ClientRectangle.Width, ClientRectangle.Height, mdc, 0, 0, ClientRectangle.Width, ClientRectangle.Height, new BLENDFUNCTION(255)); DeleteDC(mdc); DeleteObject(hbmp); ReleaseDC(Handle, hdc); }
这个是我的代码,但是不知道问题出在哪里,找了好久了都。
[解决办法]
你不知道问题出在哪里。。我不知道出了什么问题。。
[解决办法]
从dc获取的图象不可能是png的要自己转。
转成png再绘上去。