首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

求QQ截图功能的思路,具体点!明晰点

2013-12-28 
求QQ截图功能的思路,具体点!清晰点!类似QQ截图,RTX截图的功能,显示矩形大小的那个小框框暂时不要做。用的wi

求QQ截图功能的思路,具体点!清晰点!
类似QQ截图,RTX截图的功能,显示矩形大小的那个小框框暂时不要做。

用的winform.
问题焦点1:截图的时候桌面被蒙了一层暗色透明的图如何实现?
问题焦点1:怎样销毁之前在frm2上画的图。因为左键点击之后开始拉申矩形框,或者缩小矩形框。

我的想法是:1.frm_main里面截取当按截图键之后的整个screen到img:
            Image img = new Bitmap(Screen.AllScreens[0].Bounds.Width, Screen.AllScreens[0].Bounds.Height);
            Graphics g = Graphics.FromImage(img);
            g.CopyFromScreen(new Point(0, 0), new Point(0, 0), Screen.AllScreens[0].Bounds.Size);

            Form2 frm2 = new Form2();
            frm2.Show();
然后把img传给frm2备用,这里我不知道怎么传过去给frm2.求教。。。。。frm2我把oparty属性设置成50%透明度,背景色设置个灰色就行。


2.这里就要在frm2里处理mousemove的事件。
这里我是想左键点击设置isDown = true,弹起设置false;
        private void Form2_MouseDown(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
            {
                isDown = true;
//rect全局变量
                rect.X = e.X;
                rect.Y = e.Y;
            }
        }

        private void Form2_MouseUp(object sender, MouseEventArgs e)
        {
            if (e.Button == MouseButtons.Left)
                isDown = false;
        }

mousemove事件处理:
鼠标移动就销毁之前显示的那张截图(没有就不销毁)(销毁的意思是希望之前那张图完全从frm2上消失),然后根据坐标与rect,截取传过来的img的选中区的图形prtScreen,并且显示在frm2指定截图的位置。

后面的双击截图保存事件,处理比较简单,可以不告知我!

这里的代码部分,我实现老出问题,求高手解答下,或者我的思路不是很正确,求更好的方法!
[解决办法]
http://www.cnblogs.com/zhouyinhui/archive/2010/08/20/1804762.html
[解决办法]
QQ 截图都有现成的例子了,网上已经有人做过了,看一遍人家的代码就能知道些思路。
[解决办法]
参考这位仁兄的吧,有源代码
http://blog.csdn.net/crystal_lz/article/details/8274277
[解决办法]
本人菜鸟,前来学习!

热点排行