对不起,没有那么简单Option Explicit Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As LongPrivate Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As LongPrivate Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As LongPrivate Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As LongPrivate 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 LongPrivate Const SRCCOPY = &HCC0020Private Sub Form_Click() Dim lReturn As Long Dim lDC As Long Dim lBitmap As Long Dim lOldBitmap As Long PicSource.AutoRedraw = False PicSource.ScaleMode = 3 'Pixel PicPrint.ScaleMode = PicSource.ScaleMode PicPrint.Height = PicSource.Height PicPrint.Width = PicSource.Width PicPrint.Visible = False
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As LongPrivate Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As LongPrivate Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As LongPrivate Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As LongPrivate 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 LongPrivate Const SRCCOPY = &HCC0020Private Sub Form_Click() Dim lReturn As Long
Dim lDC As Long
Dim lBitmap As Long
Dim lOldBitmap As Long PicSource.AutoRedraw = False
PicSource.ScaleMode = 3 'Pixel
PicPrint.ScaleMode = PicSource.ScaleMode
PicPrint.Height = PicSource.Height
PicPrint.Width = PicSource.Width
PicPrint.Visible = False
'创建与PictureBox的设备场景兼容的一内存设备场景
lDC = CreateCompatibleDC(PicPrint.hdc)
'创建与PicSource设备场景的CBitmap对象兼容的CBitmap对象
lBitmap = CreateCompatibleBitmap(PicSource.hdc, PicSource.ScaleWidth, PicSource.ScaleHeight) '将创建的新Cbitmap对象选入内存设备场景,并保存原CBitmap对象。
lOldBitmap = SelectObject(lDC, lBitmap)
'将PicSource上显示的图样拷贝到内存设备场景
lReturn = BitBlt(lDC, 0, 0, PicSource.ScaleWidth, PicSource.ScaleHeight, PicSource.hdc, 0, 0, SRCCOPY)
'将内存设备场景的图样拷贝到PictureBox的设备场景中
lReturn = BitBlt(PicPrint.hdc, 0, 0, PicSource.ScaleWidth, PicSource.ScaleHeight, lDC, 0, 0, SRCCOPY)
'保存PictureBox的图样
SavePicture PicPrint.Image, "d:\form.bmp"
'======================================================打印Picture
' Printer.PaintPicture PicPrint.Image, 20, 20, , , , , , , SRCCOPY ' Printer.EndDoc
'=====================================================
'将内存设备场景的原CBitmap对象选回内存设备场景
lBitmap = SelectObject(lDC, lOldBitmap)
'删除创建的CBitmap对象
lReturn = DeleteObject(lBitmap)
'删除内存设备场景
lReturn = DeleteDC(lDC) End Sub
如果只是文字,完全可以自己写上去,没必要放控件