用C#在 窗体中实现拍照和打印功能怎么办啊? 用C#在 窗体中实现拍照和打印功能怎么办啊? 请大家指教,谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 拍照可以通过SendKeys.SendKey("{Print Screen}"); 具体字符串记不清 查msnd 也可以用Control.SaveImgae打印看一下PringDialog类及相关的类 在Toolbox里有 /声明一个API函数 [DllImport("gdi32.dll")] private static extern bool BitBlt( IntPtr hdcDest, // 目标 DC的句柄 int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, // 源DC的句柄 int nXSrc, int nYSrc, System.Int32 dwRop // 光栅的处理数值 );用这个函数就行了 private void button1_Click(object sender, System.EventArgs e) { this.FormBorderStyle = FormBorderStyle.None; int temptop = this.Top; int templeft = this.Left; this.Top = 0; this.Left = 0; this.Hide(); System.Threading.Thread.Sleep(100); //获得当前屏幕的大小 Rectangle rect = new Rectangle(); rect = Screen.GetWorkingArea(this); //创建一个以当前屏幕为模板的图象 Graphics g1 = this.CreateGraphics(); //创建以屏幕大小为标准的位图 Image MyImage = new Bitmap(rect.Width,rect.Height,g1); Graphics g2 = Graphics.FromImage(MyImage); //得到屏幕的DC IntPtr dc1 = g1.GetHdc(); //得到Bitmap的DC IntPtr dc2 = g2.GetHdc(); //调用此API函数,实现屏幕捕获 //此处的0,0为本窗体的左上角坐标 BitBlt(dc2, 0, 0, rect.Width, rect.Height, dc1, 0, 0, 13369376); //释放掉屏幕的DC g1.ReleaseHdc(dc1); //释放掉Bitmap的DC g2.ReleaseHdc(dc2); //以JPG文件格式来保存 MyImage.Save(@"c:\Capture.jpg", ImageFormat.Jpeg); MessageBox.Show("当前屏幕已经保存为C盘的capture.jpg文件!"); this.FormBorderStyle = FormBorderStyle.Sizable; this.Top = temptop; ; this.Left = templeft; this.Show(); } using System.Drawing.Imaging;using System.Runtime.InteropServices; [DllImport("gdi32.dll")] 这个是什么意思? 在没出来的啊,我是新手,可以说明一下吗?谢谢 急急!!书上的例题按原样敲进去怎么还有错误啊 应该怎么敲进去啊求大虾们 C#/winfrom 关闭和开启IIS服务 怎么让程序开始时候不显界面 怎么通过webbrowser访问javascript代码中的全局数组变量? 关于内存清理的一道题,大家帮忙看看 關於DllImport導入DLL的路徑問題 C# EXCEL执行统计问题 C#导入问题 急,高分请教如何在c#中用代码动态创建控件,要求在服务器端可以使用编程。 请教:怎样用C#创建COM的接口? 方法感 等
也可以用Control.SaveImgae打印看一下PringDialog类及相关的类 在Toolbox里有
[DllImport("gdi32.dll")]
private static extern bool BitBlt(
IntPtr hdcDest, // 目标 DC的句柄
int nXDest,
int nYDest,
int nWidth,
int nHeight,
IntPtr hdcSrc, // 源DC的句柄
int nXSrc,
int nYSrc,
System.Int32 dwRop // 光栅的处理数值
);用这个函数就行了 private void button1_Click(object sender, System.EventArgs e)
{
this.FormBorderStyle = FormBorderStyle.None;
int temptop = this.Top;
int templeft = this.Left;
this.Top = 0;
this.Left = 0;
this.Hide(); System.Threading.Thread.Sleep(100);
//获得当前屏幕的大小
Rectangle rect = new Rectangle();
rect = Screen.GetWorkingArea(this);
//创建一个以当前屏幕为模板的图象
Graphics g1 = this.CreateGraphics();
//创建以屏幕大小为标准的位图
Image MyImage = new Bitmap(rect.Width,rect.Height,g1);
Graphics g2 = Graphics.FromImage(MyImage);
//得到屏幕的DC
IntPtr dc1 = g1.GetHdc();
//得到Bitmap的DC
IntPtr dc2 = g2.GetHdc();
//调用此API函数,实现屏幕捕获
//此处的0,0为本窗体的左上角坐标
BitBlt(dc2, 0, 0, rect.Width, rect.Height, dc1, 0, 0, 13369376);
//释放掉屏幕的DC
g1.ReleaseHdc(dc1);
//释放掉Bitmap的DC
g2.ReleaseHdc(dc2);
//以JPG文件格式来保存
MyImage.Save(@"c:\Capture.jpg", ImageFormat.Jpeg);
MessageBox.Show("当前屏幕已经保存为C盘的capture.jpg文件!"); this.FormBorderStyle = FormBorderStyle.Sizable;
this.Top = temptop; ;
this.Left = templeft;
this.Show();
}
using System.Runtime.InteropServices;
这个是什么意思?
在没出来的啊,我是新手,可以说明一下吗?谢谢