读书人

相熟GDI编程的同学帮忙看看AlphaBle

发布时间: 2012-11-03 10:57:44 作者: rapoo

熟悉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再绘上去。

读书人网 >C#

热点推荐