屏幕截图是一个比较常用的功能,在项目中出现的比例也比较高,至少我做过的每个项目都有屏幕截图这个功能,从全屏截图到区域截图都有出现过。当然区域截图已然包含了全屏截图。
全屏截图方式有好几种,调用API截图、调用操作系统的截图然后到剪切板去取(当然这种方式几乎没人会去用)、用Graphics去画屏幕等等。
屏幕截图需二个窗口: MainForm 、CutForm
主要操作方法CutForm实现。用到事件: MouseClick 、MouseDoubleClick 、MouseDown、 MouseMove 、 MouseUp
代码如下
MainForm :
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
public class pagevalue
{
public static Bitmap screenBtmp {
get; set; } //电脑屏幕的截图
}
private void btnCut_Click(object sender, EventArgs e)
{
int swidth = Screen.PrimaryScreen.Bounds.Width;
int sheight = Screen.PrimaryScreen.Bounds.Height;
Bitmap btm = new Bitmap(swidth, sheight); //空图与屏幕同大小
Graphics g = Graphics.FromImage(btm); //空图的画板
g.CopyFromScreen(new Point(0, 0), new Point(0, 0), new Size(swidth, sheight)); //将屏幕内容复制到空图
Cutter cutter = new Cutter(btm); //传送截图
cutter.FormBorderStyle = FormBorderStyle.None; //截图全屏,无边框
cutter.BackgroundImage = btm; //新的窗体截图做背景
cutter.Owner = this;
cutter.Show();
}
public void winCut