Bitmap bitmap = (Bitmap)img;
IntPtr hObject = IntPtr.Zero;
IntPtr zero = IntPtr.Zero;
IntPtr hDC = Win32.GetDC(IntPtr.Zero);
IntPtr ptr2 = Win32.CreateCompatibleDC(hDC);
hObject = bitmap.GetHbitmap(Color.FromArgb(0, 0, 0)); zero = Win32.SelectObject(ptr2, hObject);
Win32.Size size2 = new Win32.Size(bitmap.Width, bitmap.Height);
Win32.Size psize = size2;
Win32.Point point3 = new Win32.Point(0, 0); Win32.Point pprSrc = point3;
point3 = new Win32.Point(0, 0); Win32.Point pptDst = point3;
Win32.BLENDFUNCTION pblend = new Win32.BLENDFUNCTION();
pblend.BlendOp = 0;
pblend.BlendFlags = 0;
pblend.SourceConstantAlpha = 0xff;
pblend.AlphaFormat = 1;
Win32.UpdateLayeredWindow(this.Handle, hDC, ref pptDst, ref psize, ptr2, ref pprSrc, 0, ref pblend, 2);
Win32.ReleaseDC(IntPtr.Zero, hDC);
if (hObject != IntPtr.Zero)
{
Win32.SelectObject(ptr2, zero);
Win32.DeleteObject(hObject);
}
Win32.DeleteDC(ptr2);
//请求,详细注视。
对windows api一点都不熟·#
解决方案 »
- .Net framework 到底干了什么事情??
- winform如何测试网站的连接速度
- Help.在FORM 里面调出按钮但运行时没有显示 是什么问题
- 请问在类库中怎样使用Server.MapPath,我添加了web引用
- 上次看了个高手写的代码!有些问题大家来探讨一下
- C#中调用dll问题求助!急!!!在线等...
- 我是新来的,有一菜鸟问题请教!
- 郁闷啊!!!! c#的一个小问题 搞的了半天了还没搞定 求各位高手指点指点!!!!
- C#用什么算法可以判断出一段字符串里包含是否包含固定的内容?
- 大家帮帮我,急需sp1234的一段DEMO
- WinForm MDI里打开一个子窗口是最大化效果,再打开其他子窗口如何保持原样?而这个最大化窗口也不会发生变化?
- socket多次交互
IntPtr hObject = IntPtr.Zero;
IntPtr zero = IntPtr.Zero;
//获取设备上下文
IntPtr hDC = Win32.GetDC(IntPtr.Zero);
//创建一个与指定的hDC相容的内存设备上下文
IntPtr ptr2 = Win32.CreateCompatibleDC(hDC);
hObject = bitmap.GetHbitmap(Color.FromArgb(0, 0, 0));
//选定一个对象到设备上下文
zero = Win32.SelectObject(ptr2, hObject);
Win32.Size size2 = new Win32.Size(bitmap.Width, bitmap.Height);
Win32.Size psize = size2;
Win32.Point point3 = new Win32.Point(0, 0);
Win32.Point pprSrc = point3;
point3 = new Win32.Point(0, 0);
Win32.Point pptDst = point3;
Win32.BLENDFUNCTION pblend = new Win32.BLENDFUNCTION();
pblend.BlendOp = 0;
pblend.BlendFlags = 0;
pblend.SourceConstantAlpha = 0xff;
pblend.AlphaFormat = 1;
//更新位置,大小,形状,内容和一个半透明的窗体图层
Win32.UpdateLayeredWindow(this.Handle, hDC, ref pptDst, ref psize, ptr2, ref pprSrc, 0, ref pblend, 2);
//释放设备上下文
Win32.ReleaseDC(IntPtr.Zero, hDC);
if (hObject != IntPtr.Zero)
{
Win32.SelectObject(ptr2, zero);
//Deletes the attached Windows GDI object from memory by freeing all system storage associated with the Windows GDI object.
//从内存中删除这个附加的Windows GDI对象,通过释放所有系统存储器关联的Windows GDI对象
Win32.DeleteObject(hObject);
}
Win32.DeleteDC(ptr2);
http://download.csdn.net/detail/dylike/4028682