求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 截图都有现成的例子了,网上已经有人做过了,