1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| private void menuImprimer_Click(object sender, EventArgs e)
{
PrintWindowEx();
printDocument1.Print();
}
private const int WM_PRINT = 0x0317;
private const int PRF_CLIENT = 0x00000004;
private const int PRF_CHILDREN = 0x00000010;
public Bitmap PrintWindowEx()
{
this.VerticalScroll.Value = 0;
Graphics gr = null;
IntPtr hdc = IntPtr.Zero;
try
{
memoryImage = new Bitmap(800, 1200, this.CreateGraphics());
gr = Graphics.FromImage(memoryImage);
hdc = gr.GetHdc();
IntPtr wParam = hdc;
IntPtr lParam = new IntPtr(PRF_CLIENT | PRF_CHILDREN);
Message msg = Message.Create(this.Handle, WM_PRINT, wParam, lParam);
this.WndProc(ref msg);
}
catch { }
finally
{
if (gr != null)
{
if (hdc != IntPtr.Zero)
gr.ReleaseHdc(hdc);
gr.Dispose();
}
}
return memoryImage;
}
public void printDocument1_PrintPage(System.Object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
e.Graphics.DrawImage(memoryImage, 0, 0);
} |
Partager