Print af form i C# (Visual Studio 2008)
HejJeg vil gerne printe min form ud, som jeg har lavet i visual studio 2008. Jeg har brugt følgende kode:
//Print funktion
[System.Runtime.InteropServices.DllImport("gdi32.dll")]
//Dette hentes fra 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 Bitmap memoryImage;
private void CaptureScreen()
{
Graphics mygraphics = this.CreateGraphics();
Size s = this.Size;
memoryImage = new Bitmap(s.Width, s.Height, mygraphics);
Graphics memoryGraphics = Graphics.FromImage(memoryImage);
IntPtr dc1 = mygraphics.GetHdc();
IntPtr dc2 = memoryGraphics.GetHdc();
//Her dannes bitmap billedet som C kode.
BitBlt(dc2, 0, 0, this.ClientRectangle.Width, this.ClientRectangle.Height, dc1, 0, 0, 13369376);
mygraphics.ReleaseHdc(dc1);
memoryGraphics.ReleaseHdc(dc2);
}
private void printDocument1_PrintPage(System.Object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
//Til sidst printes billedet her
e.Graphics.DrawImage(memoryImage, 0, 0);
}
Som jeg har fået fra: http://msdn2.microsoft.com/en-us/library/aa287529(VS.71).aspx
Jeg printer til windows default printer så jeg får en fil ud. Funktionen virker og der kommer et print, desværre kommer der ikke noget ud på billedet. Og er der nogen der ved hvad disse linier gør?
IntPtr dc1 = mygraphics.GetHdc();
IntPtr dc2 = memoryGraphics.GetHdc();
//Her dannes bitmap billedet som C kode.
BitBlt(dc2, 0, 0, this.ClientRectangle.Width, this.ClientRectangle.Height, dc1, 0, 0, 13369376);
Håber der er nogen der kan hjælpe.
