C# 高仿 QQ截图控件( BUG修改 + 优化版) ,含源代码.
本帖最后由 hyblusea 于 2013-12-14 14:59 编辑先上图, 效果非常小清新:
主要核心代码:
//获取桌面图像
private Bitmap GetScreen() {
Bitmap bmp = new Bitmap(Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height);
if (this.isCaptureCursor) { //是否捕获鼠标
//如果直接将捕获当的鼠标画在bmp上 光标不会反色 指针边框也很浓 也就是说
//尽管bmp上绘制了图像 绘制鼠标的时候还是以黑色作为鼠标的背景 然后在将混合好的鼠标绘制到图像 会很别扭
//所以 干脆直接在桌面把鼠标绘制出来再截取桌面
using (Graphics g = Graphics.FromHwnd(IntPtr.Zero)) { //传入0默认就是桌面 Win32.GetDesktopWindow()也可以
Win32.PCURSORINFO pci;
pci.cbSize = System.Runtime.InteropServices.Marshal.SizeOf(typeof(Win32.PCURSORINFO));
Win32.GetCursorInfo(out pci);
if (pci.hCursor != IntPtr.Zero) {
Cursor cur = new Cursor(pci.hCursor);
g.CopyFromScreen(0, 0, 0, 0, bmp.Size); //在桌面绘制鼠标前 先在桌面绘制一下当前的桌面图像
//如果不绘制当前桌面 那么cur.Draw的时候会是用历史桌面的快照 进行鼠标的混合 那么到时候混出现底色(测试中就是这样的)
cur.Draw(g, new Rectangle((Point)((Size)MousePosition - (Size)cur.HotSpot), cur.Size));
}
}
}
//做完以上操作 才开始捕获桌面图像
using (Graphics g = Graphics.FromImage(bmp)) {
g.CopyFromScreen(0, 0, 0, 0, bmp.Size);
}
return bmp;
}
源码链接: http://pan.baidu.com/s/128Woi
提取密码: pa1k
喜欢就赞一个,谢谢
版主加个精华吧,谢谢 非常不错,谢谢分享 都是大神,潜心休学 hyblusea 发表于 2013-12-14 14:59
版主加个精华吧,谢谢
资源非常好,感谢分享!
不过抱歉,非原创的不能加精华。 楼主太牛X了,TKS 学习了,谢谢 牛人啊。。。。非常好 C# 高仿 QQ截图控件( BUG修改 + 优化版) ,含源代码 {:2_26:}不错 不错不错,真好 很不错的帖子,喜欢原创 好东西,谢谢分享 啊哦,你来晚了,分享的文件已经被删除了,下次要早点哟。
楼主重新上传一个吧 非常不错,谢谢分享
页:
[1]