首页 > 学院 > 开发设计 > 正文

模仿QQ截图片

2019-11-17 03:11:59
字体:
来源:转载
供稿:网友
模仿QQ截图片
两个picturebox,一个放图片完整代码如下using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.OleDb;using System.xml;namespace Test{    public partial class Form1 : Form    {        PRivate bool MouseIsDown = false;        private int _x, _y;        private Rectangle MouseRect = Rectangle.Empty;        public Form1()        {            InitializeComponent();        }        private void ResizeToRectangle(Point p)        {            DrawRectangle();            MouseRect.Width = p.X - MouseRect.Left;            MouseRect.Height = p.Y - MouseRect.Top;            DrawRectangle();        }        private void DrawRectangle()        {            Rectangle rect = this.RectangleToScreen(MouseRect);            ControlPaint.DrawReversibleFrame(rect, Color.White, FrameStyle.Dashed);        }        private void DrawStart(Point StartPoint)        {            barkPictureBox.Capture = true;            Cursor.Clip = this.RectangleToScreen(new Rectangle(0, 0, ClientSize.Width, ClientSize.Height));            MouseRect = new Rectangle(StartPoint.X, StartPoint.Y, 0, 0);        }        private void button1_Click(object sender, EventArgs e)        {        }        void barkPictureBox_MouseUp(object sender, MouseEventArgs e)        {            barkPictureBox.Capture = false;            Cursor.Clip = Rectangle.Empty;            MouseIsDown = false;            DrawRectangle();            if (MouseRect.X == 0 || MouseRect.Y == 0 || MouseRect.Width == 0 || MouseRect.Height == 0)  //如果区域有一个是0就返回            {            }            else            {                ///代码            }            MouseRect = Rectangle.Empty;            int sx = _x < e.X ? _x : e.X;            int sy = _y < e.Y ? _y : e.Y;            int w = Math.Abs(_x - e.X);            int h = Math.Abs(_y - e.Y);            Graphics g = Graphics.FromHwnd(pictureBox2.Handle);            g.Clear(pictureBox2.BackColor);            g.DrawImage(barkPictureBox.Image, new Rectangle(0, 0, w, h), sx, sy, w, h, GraphicsUnit.Pixel);         }        void barkPictureBox_MouseMove(object sender, MouseEventArgs e)        {            if (MouseIsDown) ResizeToRectangle(new Point(e.X + barkPictureBox.Location.X, e.Y + barkPictureBox.Location.Y));                   }        void barkPictureBox_MouseDown(object sender, MouseEventArgs e)        {            _x = e.X;            _y = e.Y;            MouseIsDown = true;            DrawStart(new Point(e.X + barkPictureBox.Location.X, e.Y + barkPictureBox.Location.Y));        }            private void Form1_Load(object sender, EventArgs e)        {            barkPictureBox.MouseDown += new MouseEventHandler(barkPictureBox_MouseDown);            barkPictureBox.MouseMove += new MouseEventHandler(barkPictureBox_MouseMove);            barkPictureBox.MouseUp += new MouseEventHandler(barkPictureBox_MouseUp);        }    }}


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表