1
我想仅打印来自C#应用程序的活动窗口。使用CopyFromScreen()不起作用,因为它需要一个屏幕截图,并且窗口可能会出现其他瞬态窗口部分隐藏。所以,我想PrintWindow():仅打印C中的活动窗口#
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
e.Graphics.PageScale = 10.0f;
Graphics g = e.Graphics;
PrintWindow(this.Handle, g.GetHdc(), 0);
}
无论哪个PageScale我用这产生了窗口的一个小邮票大小的打印输出。 任何想法?
编辑 该做的伎俩:
private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
{
Graphics myGraphics = CreateGraphics();
var bitmap = new Bitmap(Width, Height, myGraphics);
DrawToBitmap(bitmap, new Rectangle(0, 0, bitmap.Width, bitmap.Height));
e.Graphics.DrawImage(bitmap, 0, 0);
}
它可能不是C#,但C代码表示您可能需要创建一个窗口大小的位图缓冲区。 – Pieter21 2014-08-28 14:33:17
我会试试看,谢谢。 – 2014-08-29 05:24:08