Ejemplo n.º 1
0
        private void CaptureForm_MouseUp(object sender, MouseEventArgs e)
        {
            isMouseDown = false;

            this.lbMsg.Text = "";
            Application.DoEvents();
            User32Helper.GetCursorPos(ref downright);
            Size size = new System.Drawing.Size(Math.Abs(downright.X - upperleft.X), Math.Abs(downright.Y - upperleft.Y));

            this.Refresh();
            Bitmap bmp = null;

            if (upperleft.X < downright.X && upperleft.Y < downright.Y)//从左上往右下方拖动
            {
                bmp = ImageHelper.GetImage(upperleft, size);
            }
            else if (upperleft.X > downright.X && upperleft.Y > downright.Y) //从右下往左上方拖动
            {
                bmp = ImageHelper.GetImage(downright, size);
            }
            else if (upperleft.X < downright.X && upperleft.X > downright.Y)//从左下方往右上方拖动
            {
                bmp = ImageHelper.GetImage(new Point(upperleft.X, downright.Y), size);
            }
            else if (upperleft.X > downright.X && upperleft.Y < downright.Y)//从右上方往左下方拖动
            {
                bmp = ImageHelper.GetImage(new Point(downright.X, upperleft.Y), size);
            }
            SaveImage(bmp);
        }
Ejemplo n.º 2
0
        private void CaptureForm_MouseMove(object sender, MouseEventArgs e)
        {
            Point currentPoint = new Point(0, 0);

            User32Helper.GetCursorPos(ref currentPoint);
            Color  c   = (this.BackgroundImage as Bitmap).GetPixel(currentPoint.X, currentPoint.Y);
            string msg = string.Format("R:{0} G:{1} B:{2}", c.R, c.G, c.B);

            if (!isMouseDown)
            {
                this.lbMsg.Text = msg;
                return;
            }
            msg             = msg + "  " + string.Format("选取的bmp大小{0}:{1}", Math.Abs(e.X - upperleft.X), Math.Abs(e.Y - upperleft.Y));
            this.lbMsg.Text = msg;
            int x_max;
            int x_min;
            int y_max;
            int y_min;

            if (e.X > upperleft.X)
            {
                x_max = e.X;
                x_min = upperleft.X;
            }
            else
            {
                x_min = e.X;
                x_max = upperleft.X;
            }
            if (e.Y > upperleft.Y)
            {
                y_max = e.Y;
                y_min = upperleft.Y;
            }
            else
            {
                y_min = e.Y;
                y_max = upperleft.Y;
            }
            int width  = x_max - x_min;
            int height = y_max - y_min;

            this.Refresh();//清除上一次的痕迹
            using (var g = this.CreateGraphics())
            {
                g.DrawRectangle(new Pen(new SolidBrush(Color.Blue)), new Rectangle(x_min - 1, y_min - 1, width + 1, height + 1));
            }
        }
Ejemplo n.º 3
0
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            var handle = new WindowInteropHelper(this).Handle;

            if (User32Helper.RegisterHotKey(handle, id, User32Helper.KeyModifiers.Ctrl, Keys.B))
            {
                isReady            = true;
                this.lbMsg.Content = "按Ctrl+B开始截图";
            }
            else
            {
                isReady               = false;
                this.lbMsg.Content    = "热键Ctrl+B被占用,热键截图功能无法使用!";
                this.lbMsg.Foreground = new SolidColorBrush(Colors.Red);
            }
            var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("CaptureLikeQQ_WPF.Resources.Capture.ico");

            this.Icon = ImageHelper.GetImage(stream);
        }
Ejemplo n.º 4
0
 private void CaptureForm_MouseDown(object sender, MouseEventArgs e)
 {
     this.Cursor = Cursors.Hand;
     User32Helper.GetCursorPos(ref upperleft);
     isMouseDown = true;
 }
Ejemplo n.º 5
0
 private void NotifiyIcon_MouseDoubleClick(object sender, System.Windows.Forms.MouseEventArgs e)
 {
     this.Show();
     User32Helper.SetForegroundWindow(new WindowInteropHelper(this).Handle);
 }