using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplication9 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { DrawBg(); } private void Form1_Load(object sender, EventArgs e) { this.SetStyle(ControlStyles.OptimizedDoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true); this.UpdateStyles(); } private void Form1_KeyDown(object sender, KeyEventArgs e) { if ((Keys.Modifiers&Keys.Control)!=0&&(Keys.Modifiers&Keys.Alt)!=0&&e.KeyCode==Keys.A) { DrawBg(); } } private void DrawBg() { this.Hide(); Bitmap bitmap = new Bitmap(Screen.AllScreens[0].Bounds.Width, Screen.AllScreens[0].Bounds.Height); Graphics g = Graphics.FromImage(bitmap); g.CopyFromScreen(new Point(0, 0), new Point(0, 0), new Size(bitmap.Width, bitmap.Height)); TextureBrush t = new TextureBrush(bitmap); Form2 f = new Form2(t); f.Show(); } } } using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Drawing.Drawing2D; namespace WindowsFormsApplication9 { public partial class Form2 : Form { TextureBrush tt; Point startPoint; Rectangle rect; bool isClick = false; public Form2(TextureBrush t) { InitializeComponent(); tt = t; startPoint = new Point(); rect = new Rectangle(0, 0, 0, 0); } private void Form2_Load(object sender, EventArgs e) { this.BackgroundImage = tt.Image; } private void Form2_MouseDown(object sender, MouseEventArgs e) { switch (e.Button) { case MouseButtons.Left: isClick = true; startPoint = e.Location; break; case MouseButtons.Right: this.Close(); break; default: break; } } private void Form2_MouseUp(object sender, MouseEventArgs e) { isClick = false; } private void Form2_MouseMove(object sender, MouseEventArgs e) { if (isClick) { ControlPaint.DrawReversibleFrame(rect, this.BackColor, FrameStyle.Dashed); rect.Location = startPoint; rect.Width = e.X - startPoint.X; rect.Height = e.Y - startPoint.Y; ControlPaint.DrawReversibleFrame(rect, this.BackColor, FrameStyle.Dashed); } } private void Form2_DoubleClick(object sender, EventArgs e) { Bitmap bitmap = new Bitmap(rect.Width, rect.Height); Graphics gs = Graphics.FromImage(bitmap); gs.DrawImage(tt.Image, new Rectangle(0, 0, rect.Width, rect.Height), rect, GraphicsUnit.Pixel); Clipboard.SetImage(bitmap); gs.Dispose(); bitmap.Dispose(); this.Close(); } } } 功能还不完善,回来再改进