📄 frmdatapro.frm
字号:
VERSION 5.00
Object = "{E228A480-FDCB-11D5-A3C8-0050BF074C3F}#2.0#0"; "curtPrinter.ocx"
Begin VB.Form frmDatapro
Caption = "数据窗体"
ClientHeight = 6885
ClientLeft = 165
ClientTop = 450
ClientWidth = 9465
LinkTopic = "Form1"
Picture = "frmDatapro.frx":0000
ScaleHeight = 6885
ScaleWidth = 9465
Begin CurtPrinter打印预览控件.CurtPrinter CurtPrinter1
Height = 1095
Left = 840
TabIndex = 0
Top = 2160
Width = 3495
_ExtentX = 6165
_ExtentY = 1931
ForeColor = -2147483640
BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851}
Name = "宋体"
Size = 9
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
End
Begin VB.Menu mnuDemo
Caption = "演示内容"
Begin VB.Menu mnuPreview
Caption = "预览"
End
Begin VB.Menu mnuPrint
Caption = "打印"
End
Begin VB.Menu mnuExit
Caption = "退出"
End
End
Begin VB.Menu mnuManual
Caption = "编码控制预览"
Enabled = 0 'False
Begin VB.Menu mnuPageUp
Caption = "上页"
End
Begin VB.Menu mnuPageDown
Caption = "下页"
End
Begin VB.Menu mnuZoom
Caption = "显示比例"
End
Begin VB.Menu mnuPaperSize
Caption = "选择纸张"
End
Begin VB.Menu mnuOrientation
Caption = "纸张方向"
End
End
End
Attribute VB_Name = "frmDatapro"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
''''''''''''''''''''''''''''''''''''''''''''''''
Option Explicit
'打印内容代码。预览或打印都是调用该代码的,也是大部分打印方法的演示
Public Sub PrintContent(Optional PrintDevice As Printer)
If Not PrintDevice Is Nothing Then
CurtPrinter1.StartPrint PrintDevice '打印到打印机
Else
CurtPrinter1.StartPrint '缺省是预览
End If
With CurtPrinter1
'第一页,编程打印,其实也是非常简单
.NewPage
.TitleOut "自定义打印测试(标题居中)", 15, vbCenter '打印标题
' .TextOut "打印表格测试(默认字体设置):"
' .NewRow
'直接打印MSHFlexGrid
'.TitleOut "直接打印MSHFlexGrid的测试,居中对齐"
.DirectPrint FrmProcl.myflexgrid, "测试MSFLEXGRID", 12
.NewRow
'结束打印
.EndDoc
End With
End Sub
Private Sub Label1_Click()
End Sub
Private Sub mnuExit_Click()
Unload Me
End Sub
'预览的代码
Private Sub mnuPreview_Click()
CurtPrinter1.Visible = True
mnuManual.Enabled = True
PrintContent
End Sub
'两行代码可选,一个会调用打印对话框,一个直接打印了。
Private Sub mnuPrint_Click()
CurtPrinter1.ShowPrinter
'PrintContent Printer
End Sub
'点击了预览控件上的关闭,引发该事件,关闭预览窗体
Private Sub curtprinter1_ClosePreview()
CurtPrinter1.Visible = False
mnuManual.Enabled = False
End Sub
'如果每次调整预览比例好重新生成预览的话,请将AutoRedraw设置为FALSE,然后在下面的事件添入要重画的代码
Private Sub curtprinter1_NeedRedraw()
PrintContent
End Sub
'写入打印叶脚的代码
Private Sub curtprinter1_PrintFooter(CurrentPage As Long)
CurtPrinter1.FooterOut "", "", ""
End Sub
'写入打印页眉的代码
Private Sub curtprinter1_PrintHeader(CurrentPage As Long)
CurtPrinter1.HeaderOut "", "", "第" & CurrentPage & "页"
End Sub
'点击了预览窗体或直接调用ShowPrinter后,点击了打印机窗口的确定,引发打印代码,打印到打印机上!
Private Sub curtprinter1_RealPrint()
PrintContent Printer
End Sub
'如果隐藏工具条,仍可以通过简单的编程控制预览
Private Sub mnuPageDown_Click()
CurtPrinter1.PageDown
End Sub
Private Sub mnuPageSetup_Click()
CurtPrinter1.PageSetup
End Sub
Private Sub mnuPageUp_Click()
CurtPrinter1.PageUp
End Sub
Private Sub mnuZoom_Click()
CurtPrinter1.Zoom = Val(InputBox("请输入0-200之间的数字")) '0代表整页预览
End Sub
Private Sub mnuOrientation_Click()
CurtPrinter1.Orientation = IIf(CurtPrinter1.Orientation = 1, 2, 1)
End Sub
Private Sub mnuPaperSize_Click()
CurtPrinter1.PaperSize = InputBox("请输入打印纸型号:")
End Sub
'预览控件尺寸根据窗口调整
Private Sub Form_Resize()
CurtPrinter1.Move 0, 0, ScaleWidth, ScaleHeight
End Sub
Private Sub Form_Unload(Cancel As Integer)
If CurtPrinter1.Busy = True Then '打印预览控件忙则取消打印任务,然后就可以退出了
CurtPrinter1.CancelPrint
MsgBox "打印控件忙,稍后重试。", vbInformation
Cancel = True
End If
End Sub
'添加数据到控件,以测试打印预览
Private Sub Form_Load()
Dim i As Long, j As Long, K As Long
CurtPrinter1.Visible = False
CurtPrinter1.Zoom = 100 '0代表整页预览
End Sub
'复制字体属性
Private Sub CloneFont(Dest As StdFont, Src As StdFont)
With Dest
.Bold = Src.Bold
.Charset = Src.Charset
.Italic = Src.Italic
.Name = Src.Name
.Size = Src.Size
.Strikethrough = Src.Strikethrough
.Underline = Src.Underline
.Weight = Src.Weight
End With
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -