日期:2014-05-17  浏览次数:20951 次

C# 截屏功能抓不到无边框透明背景窗口
设置了FormBorderStyle=NONE,背景为Control, TransparencyKey也是Control

然后在Paint事件里面用DrawImage自绘背景,在截屏时截不到这个窗口,

有时在拖动,和缩放的时候,窗口移出去的背景不会刷新,要怎么弄?

现截屏试了2种,都不行:
1. g.CopyFromScreen(0, 0, 0, 0, Screen.PrimaryScreen.Bounds.Size);

2. 用的CodeProject代码也不行
http://www.codeproject.com/Articles/3024/Capturing-the-Screen-Image-in-C
http://www.cnblogs.com/1971ruru/archive/2010/03/19/screencap1.html

各位帮我看看,谢谢。

------解决方案--------------------
http://download.csdn.net/detail/kangkang18185/4582549 看看这个合适你不。
------解决方案--------------------
在C#里调用截屏方法也是调用windows实现的。
QQ的,估计是直接拷贝屏幕使用direct实现的。
------解决方案--------------------
获取窗口的HDC,然后bitblt到BITMAP里面试试
------解决方案--------------------
我是这样做的.....
那个开一个新的窗体....
窗体里面有个全窗的PictureBox
然后窗体打开的时候把桌面屏幕截图下来,赋值给PictureBox。。。r
透明度弄成比较“梦幻”的....然后截图的时候,你就捕获、鼠标按下和弹起的位置。。。
把块区域...抠出来保存下来...就可以了!