怎么打印PictureBox中的内容(内容是用Picture.Line显示在PictureBox中的线条)

如何打印PictureBox中的内容(内容是用Picture.Line显示在PictureBox中的线条)如何打印PictureBox中的内容(

如何打印PictureBox中的内容(内容是用Picture.Line显示在PictureBox中的线条)
如何打印PictureBox中的内容(内容是用Picture.Line显示在PictureBox中的线条)

[解决办法]
PaintPicture 方法


用以在 Form, PictureBox 或 Printer 上绘制图形文件(.bmp、.wmf、.emf、.cur、.ico或 .dib)的内容。不支持命名参数。

[解决办法]
Option Explicit
Private Declare Function BitBlt Lib "gdi32 " (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Const SRCCOPY = &HCC0020 ' (DWORD) dest = source

Private Sub Command1_Click()
Picture1.Width = Picture1.Width
Picture1.Height = Picture1.Height
Picture1.AutoRedraw = True
BitBlt Picture1.hDC, 0, 0, Picture1.Width / Screen.TwipsPerPixelX, Picture1.Height / Screen.TwipsPerPixelY, Picture1.hDC, 0, 0, SRCCOPY
Picture1.AutoRedraw = False
Picture1.Refresh
Printer.PaintPicture Picture1.Image, 1000, 1000
Printer.EndDoc
End Sub

[解决办法]
给两个小函数你看看,是不是你所需要的:
'实际打印时用
Sub ppm(L, r, t, con$)
Printer.CurrentX = L + (r - L - Printer.TextWidth(con$)) \ 2
Printer.CurrentY = t
Printer.Print con$
End Sub
'预览时用
Sub pppm(L, r, t, con$, p As PictureBox)
p.CurrentX = L + (r - L - p.TextWidth(con$)) \ 2
p.CurrentY = t
p.Print con$
End Sub


[解决办法]
看不明白吗?

这两个函数基本上的一样的
只是输出到picturebox时用pppm
输出到printer时用ppm