一个很头痛的打印问题!各位大虾!请进!

008 2000-08-16 10:10:00
各位大虾,如何将picturebox控件中的一些按钮或者其他控件打印出来?注意:此时picturebox是作为一个容器,并且它的picture属性为空。
如果哪一位大虾能过指点迷津,小弟将100分双手奉上!
...全文
204 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Un1 2000-08-16
  • 打赏
  • 举报
回复
Sorry! 上面贴错了!

'form1.frm 文件

VERSION 5.00
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 5805
ClientLeft = 1545
ClientTop = 1920
ClientWidth = 6900
LinkTopic = "Form1"
ScaleHeight = 5805
ScaleWidth = 6900
Begin VB.CommandButton Command2
Caption = "&Click Me"
Height = 1035
Left = 4500
TabIndex = 2
Top = 270
Width = 1965
End
Begin VB.PictureBox Picture1
Height = 2505
Left = 4320
ScaleHeight = 2445
ScaleWidth = 2235
TabIndex = 0
Top = 1920
Width = 2295
Begin VB.CommandButton Command1
Caption = "Command1"
Enabled = 0 'False
Height = 1005
Left = 630
TabIndex = 1
Top = 1140
Width = 915
End
Begin VB.Label Label1
Caption = "把这里的内容打印在窗口上"
Height = 345
Left = 570
TabIndex = 3
Top = 360
Width = 1215
End
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Private Const HORZRES = 8 ' Horizontal width in pixels
Private Const VERTRES = 10 ' Vertical width in pixels
Private Const CF_BITMAP = 2
Private Const SRCCOPY = &HCC0020 ' (DWORD) dest = source

Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long
Private Declare Function CreateCompatibleBitmap Lib "gdi32" (ByVal hdc As Long, ByVal nWidth As Long, ByVal nHeight As Long) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
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 Declare Function DeleteDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function EmptyClipboard Lib "user32" () As Long
Private Declare Function SetClipboardData Lib "user32" (ByVal wFormat As Long, ByVal hMem As Long) As Long
Private Declare Function CloseClipboard Lib "user32" () As Long

Private Sub Command2_Click()
Dim hScrDC As Long
hScrDC = GetDC(Picture1.hwnd)

Dim hMemDC As Long
hMemDC = CreateCompatibleDC(hScrDC)

Dim xScrn As Integer
Dim yScrn As Integer
Picture1.ScaleMode = vbPixels
xScrn = Picture1.ScaleWidth
yScrn = Picture1.ScaleHeight

Dim hBitmap As Long
hBitmap = CreateCompatibleBitmap(hScrDC, xScrn, yScrn)
Dim hOldmap As Long
hOldmap = SelectObject(hMemDC, hBitmap)
BitBlt hMemDC, 0, 0, xScrn, yScrn, hScrDC, 0, 0, SRCCOPY
hBitmap = SelectObject(hMemDC, hOldmap)
DeleteDC hScrDC
DeleteDC hMemDC
OpenClipboard hwnd
EmptyClipboard
SetClipboardData CF_BITMAP, hBitmap
CloseClipboard

Set Picture = Clipboard.GetData()
End Sub
Un1 2000-08-16
  • 打赏
  • 举报
回复
codebase:400kb, Vbis5032:100kb
Jujus 2000-08-16
  • 打赏
  • 举报
回复
把picturebox的autoredraw设为true
008 2000-08-16
  • 打赏
  • 举报
回复
对不起!我现在发现一旦picturebox的面积比窗体大的时候,picturebox内的东西就没办法打印全,并且,当打印完成后,图形界面中的按钮就会变形。请你再提供一个解决方案好麽,UN1。小弟不胜感激!
008 2000-08-16
  • 打赏
  • 举报
回复
对不起!我现在发现一旦picturebox的面积比窗体大的时候,picturebox内的东西就没办法打印全,请你再提供一个解决方案好麽,UN1。小弟不胜感激!

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧