Ghasem_M
دوشنبه 30 بهمن 1385, 12:58 عصر
سلام خدمت دوستان عزیز
من می خواهم که از روی فرم پرینت بگیرم در همین سایت کدی را پیدا کردم که این کار رو انجام می داد که در زیر این کد رو گذاشتم ولی حالا می خواهم با استفاده از همین کد یک بار از روی فرم پرینت بگیرم بعد فرم رو تغیر بدم و دو باره پرینت بگیرم ولی فرم دومی پشت همین کاغذی چاپ بشه که من در پرینت قبلی ازش استفاده کردم از دوستان عزیز خواهش میکنم حتما کمکم کنند چون خیلی فوری و ضروری :ناراحت:
Public
Class Form1
Inherits System.Windows.Forms.Form
PrivateDeclareFunction BitBlt Lib "gdi32.dll" Alias "BitBlt" (ByVal hdcDest As IntPtr, ByVal nXDest AsInteger, ByVal nYDest AsInteger, ByVal nWidth AsInteger, ByVal nHeight AsInteger, ByVal hdcSrc As IntPtr, ByVal nXSrc AsInteger, ByVal nYSrc AsInteger, _
ByVal dwRop As System.Int32) AsLong
Dim memoryImage As Bitmap
PrivateSub CaptureScreen()
Dim mygraphics As Graphics = Me.CreateGraphics()
Dim s As Size = Me.Size
memoryImage = New Bitmap(s.Width, s.Height, mygraphics)
Dim memoryGraphics As Graphics = Graphics.FromImage(memoryImage)
Dim dc1 As IntPtr = mygraphics.GetHdc
Dim dc2 As IntPtr = memoryGraphics.GetHdc
BitBlt(dc2, 0, 0, Me.ClientRectangle.Width, Me.ClientRectangle.Height, dc1, 0, 0, 13369376)
mygraphics.ReleaseHdc(dc1)
memoryGraphics.ReleaseHdc(dc2)
EndSub
PrivateSub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
e.Graphics.DrawImage(memoryImage, 0, 0)
EndSub
PrivateSub Form1_DoubleClick(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMyBase.DoubleClick
CaptureScreen()
PrintDocument1.Print()
EndSub
end class
من می خواهم که از روی فرم پرینت بگیرم در همین سایت کدی را پیدا کردم که این کار رو انجام می داد که در زیر این کد رو گذاشتم ولی حالا می خواهم با استفاده از همین کد یک بار از روی فرم پرینت بگیرم بعد فرم رو تغیر بدم و دو باره پرینت بگیرم ولی فرم دومی پشت همین کاغذی چاپ بشه که من در پرینت قبلی ازش استفاده کردم از دوستان عزیز خواهش میکنم حتما کمکم کنند چون خیلی فوری و ضروری :ناراحت:
Public
Class Form1
Inherits System.Windows.Forms.Form
PrivateDeclareFunction BitBlt Lib "gdi32.dll" Alias "BitBlt" (ByVal hdcDest As IntPtr, ByVal nXDest AsInteger, ByVal nYDest AsInteger, ByVal nWidth AsInteger, ByVal nHeight AsInteger, ByVal hdcSrc As IntPtr, ByVal nXSrc AsInteger, ByVal nYSrc AsInteger, _
ByVal dwRop As System.Int32) AsLong
Dim memoryImage As Bitmap
PrivateSub CaptureScreen()
Dim mygraphics As Graphics = Me.CreateGraphics()
Dim s As Size = Me.Size
memoryImage = New Bitmap(s.Width, s.Height, mygraphics)
Dim memoryGraphics As Graphics = Graphics.FromImage(memoryImage)
Dim dc1 As IntPtr = mygraphics.GetHdc
Dim dc2 As IntPtr = memoryGraphics.GetHdc
BitBlt(dc2, 0, 0, Me.ClientRectangle.Width, Me.ClientRectangle.Height, dc1, 0, 0, 13369376)
mygraphics.ReleaseHdc(dc1)
memoryGraphics.ReleaseHdc(dc2)
EndSub
PrivateSub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
e.Graphics.DrawImage(memoryImage, 0, 0)
EndSub
PrivateSub Form1_DoubleClick(ByVal sender AsObject, ByVal e As System.EventArgs) HandlesMyBase.DoubleClick
CaptureScreen()
PrintDocument1.Print()
EndSub
end class