如何打印屏幕指定区域?

yunsongzh 2007-12-11 06:46:57
现在有一个winform应用程序,要打印屏幕上指定的区域,最好能用鼠标拖动指定。请问应该如何实现?.net中有哪些类提供了这方面的支持?
谢谢!!
...全文
272 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yunsongzh 2007-12-13
  • 打赏
  • 举报
回复
谢谢,这样是可以的。但我现在想把这张生成的图片直接打印出来,请问怎么实现?
谢谢!
ANGELSCURSE 2007-12-11
  • 打赏
  • 举报
回复
我这有段代码你参考下:不过只能抓取固定区域,不能用鼠标指定
//抓取,保存图片
[System.Runtime.InteropServices.DllImport("gdi32.dll")]
public static extern long BitBlt (IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, int dwRop);
private void CaptureScreen(string imagePath)//imagePath抓取屏幕后的图片保存路径
{
Graphics mygraphics = this.CreateGraphics();
Size s = this.Size;
Image memoryImage = new Bitmap(zedGraphControl1.Width,zedGraphControl1.Height, mygraphics);
Graphics memoryGraphics = Graphics.FromImage(memoryImage);
IntPtr dc1 = mygraphics.GetHdc();
IntPtr dc2 = memoryGraphics.GetHdc();
BitBlt(dc2, 0, 0, this.ClientRectangle.Width, this.ClientRectangle.Height, dc1, zedGraphControl1.Location.X, zedGraphControl1.Location.Y, 13369376);//设置抓取屏幕的区域
mygraphics.ReleaseHdc(dc1);
memoryGraphics.ReleaseHdc(dc2);
memoryImage.Save(imagePath,System.Drawing.Imaging.ImageFormat.Jpeg);
}

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧