VB.NET窗體打印代碼解讀
作者:佚名
VB.NET窗體打印的實(shí)現(xiàn)可以通過本文介紹的這段代碼來實(shí)現(xiàn)。具體的操作技巧還需要我們?cè)趯?shí)踐中去慢慢的發(fā)現(xiàn)積累,熟練的應(yīng)用。
大多數(shù)人在學(xué)習(xí)編程的過程中,往往都會(huì)通過不斷的代碼編寫來積累經(jīng)驗(yàn)達(dá)到一個(gè)運(yùn)用熟練的地步。那么對(duì)于VB.NET語言的學(xué)習(xí)同樣需要遵循這樣一個(gè)規(guī)律。下面就讓我們一起來看看VB.NET窗體打印的實(shí)現(xiàn)代碼,從中增加我們的代碼編寫經(jīng)驗(yàn)。
VB.NET窗體打印代碼示例:
- Imports System
- Imports System.Drawing.Printing
- Public Class Form1
- < System.Runtime.InteropServices.
DllImport("gdi32.dll")>- _Public Shared Function BitBlt
(ByVal hdcDest As IntPtr, ByVal
nXDest As Integer, ByVal nYDest As
Integer, ByVal nWidth As Integer,
ByVal nHeight As Integer, ByVal hdcSrc
As IntPtr, ByVal nXSrc As Integer,
ByVal nYSrc As Integer, ByVal dwRop
As Integer) As Boolean- End Function
- < System.Runtime.InteropServices.
DllImport("User32.dll")> _- Public Shared Function GetWindowDC
(ByVal hwd As IntPtr) As IntPtr- End Function
- < System.Runtime.InteropServices.
DllImport("User32.dll")> _- Public Shared Function ReleaseDC
(ByVal hwd As IntPtr, ByVal dc As
IntPtr) As Integer- End Function
- < System.Runtime.InteropServices.
DllImport("user32.dll")> _- Public Shared Function GetWindowRect
(ByVal hWnd As IntPtr, ByRef lpRect
As RECT) As Boolean- End Function
- < Serializable(), System.Runtime.
InteropServices.StructLayout(System.
Runtime.InteropServices.LayoutKind.
Sequential)> _- Public Structure RECT
- Public Left As Integer
- Public Top As Integer
- Public Right As Integer
- Public Bottom As Integer
- End Structure
- Private memoryImage As Bitmap
- Private Sub CaptureScreen()
- Dim mygraphics As Graphics = Me.
CreateGraphics()- Dim r As RECT
- GetWindowRect(Me.Handle, r)
- Dim s As RectangleRectangle =
Rectangle.FromLTRB(r.Left, r.Top,
r.Right, r.Bottom)- memoryImage = New Bitmap(s.Width,
s.Height, mygraphics)- Dim memoryGraphics As Graphics
Graphics = Graphics.FromImage(memoryImage)- Dim dc1 As IntPtr = GetWindowDC(Me.Handle)
- Dim dc2 As IntPtr = memoryGraphics.GetHdc()
- BitBlt(dc2, 0, 0, s.Width, s.Height,
dc1, 0, 0, 13369376)- ReleaseDC(Me.Handle, dc1)
- memoryGraphics.ReleaseHdc(dc2)
- End Sub
- Private Sub Document_PrintPage(ByVal
sender As System.Object, ByVal e As
System.Drawing.Printing.PrintPageEventArgs)- e.Graphics.DrawImage(memoryImage, 0, 0)
- End Sub
- Private Sub Button1_Click_1(ByVal sender
As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click- CaptureScreen()
- PrintDialog1.ShowDialog()
- Dim pd As PrintDocument = New
PrintDocument- pd.PrinterSettings = PrintDialog1.
PrinterSettings- AddHandler pd.PrintPage, AddressOf
Document_PrintPage- pd.Print()
- End Sub
怎么樣,通過本文介紹的VB.NET窗體打印的實(shí)現(xiàn)方法,大家應(yīng)該可以充分掌握這一應(yīng)用技巧了。
【編輯推薦】
責(zé)任編輯:曹凱
來源:
CSDN