各种对话框 Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long 打开文件 Private Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long 保存文件 Private Declare Function ChooseColorAPI Lib "comdlg32.dll" Alias "ChooseColorA" (pChoosecolor As CHOOSECOLOR) As Long 设置颜色 Private Declare Function ChooseFont Lib "comdlg32.dll" Alias "ChooseFontA" (pChoosefont As ChooseFont) As Long 设置字体 Private Declare Function PrintDlg Lib "comdlg32.dll" Alias "PrintDlgA" (pPrintdlg As PrintDlg) As Long 打印对话框 所需结构定义: Private Type OPENFILENAME 'Open & Save Dialog lStructSize As Long hwndOwner As Long hInstance As Long lpstrFilter As String lpstrCustomFilter As String nMaxCustFilter As Long nFilterIndex As Long lpstrFile As String nMaxFile As Long lpstrFileTitle As String nMaxFileTitle As Long lpstrInitialDir As String lpstrTitle As String flags As Long nFileOffset As Integer nFileExtension As Integer lpstrDefExt As String lCustData As Long lpfnHook As Long lpTemplateName As String End TypePrivate Type CHOOSECOLOR 'Color Dialog lStructSize As Long hwndOwner As Long hInstance As Long RGBResult As Long lpCustColors As String flags As Long lCustData As Long lpfnHook As Long lpTemplateName As String End Type ( "> )( // ) shannon--//""-- -/[email protected]
Declare Function PRINTDLG Lib "comdlg32.dll" Alias _ "PrintDlgA" (pPrintdlg As PRINTDLG) As Long Type PRINTDLG lStructSize As Long hwndOwner As Long hDevMode As Long hDevNames As Long hdc As Long flags As Long nFromPage As Integer nToPage As Integer nMinPage As Integer nMaxPage As Integer nCopies As Integer hInstance As Long lCustData As Long lpfnPrintHook As Long lpfnSetupHook As Long lpPrintTemplateName As String lpSetupTemplateName As String hPrintTemplate As Long hSetupTemplate As Long End Type 使用: Private Sub Command1_Click() Dim p As PRINTDLG p.lStructSize = Len(p) p.hwndOwner = Me.hWnd p.nFromPage = 1 p.nToPage = 1 p.nMinPage = 1 p.nMaxPage = 1 p.nCopies = 1 x = PRINTDLG(p) Printer.Print Text1.Text End Sub 在打印字符串时自动换行 其中 len1 为打印的宽度, Str 为打印的文本。 Do While Len(Str) > 0 str1 = Str Do While len1 > 0 And Printer.TextWidth(str1) > len1 str1 = Left(str1, Len(str1) - 1) Loop Printer.Print str1 '打印 If Len(str1) = 0 Then Exit Do '不匹配 Str = Mid(Str, Len(Str1)+1) '截断! Loop 打印机只打印一行 在 Win95 下,只有在使用 EndDoc 或 NewPage 时,打印机才开始打印,而且每次都要换页。使用以下的方法,可以只打印一行,并且可以把打印机的控制字符也直接发到打印机。 注意:如果打印机无汉字库,不能输出中文。 Open "PRN" For Output As #1 Print #1, "一行" 如何改变 Windows 预设的打印机? 在 VB 里面, 原本改变预设打印机的方法是:(假设安装有两种打印机(驱动程序)) Set Printer = Printers(0) ' 将预设打印机设定成第一种打印机 Set Printer = Printers(1) ' 将预设打印机设定成第二种打印机
Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
打开文件
Private Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" (pOpenfilename As OPENFILENAME) As Long
保存文件
Private Declare Function ChooseColorAPI Lib "comdlg32.dll" Alias "ChooseColorA" (pChoosecolor As CHOOSECOLOR) As Long
设置颜色
Private Declare Function ChooseFont Lib "comdlg32.dll" Alias "ChooseFontA" (pChoosefont As ChooseFont) As Long
设置字体
Private Declare Function PrintDlg Lib "comdlg32.dll" Alias "PrintDlgA" (pPrintdlg As PrintDlg) As Long
打印对话框
所需结构定义:
Private Type OPENFILENAME 'Open & Save Dialog
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End TypePrivate Type CHOOSECOLOR 'Color Dialog
lStructSize As Long
hwndOwner As Long
hInstance As Long
RGBResult As Long
lpCustColors As String
flags As Long
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type
( ">
)(
// )
shannon--//""--
-/[email protected]
"PrintDlgA" (pPrintdlg As PRINTDLG) As Long
Type PRINTDLG
lStructSize As Long
hwndOwner As Long
hDevMode As Long
hDevNames As Long
hdc As Long
flags As Long
nFromPage As Integer
nToPage As Integer
nMinPage As Integer
nMaxPage As Integer
nCopies As Integer
hInstance As Long
lCustData As Long
lpfnPrintHook As Long
lpfnSetupHook As Long
lpPrintTemplateName As String
lpSetupTemplateName As String
hPrintTemplate As Long
hSetupTemplate As Long
End Type 使用: Private Sub Command1_Click()
Dim p As PRINTDLG
p.lStructSize = Len(p)
p.hwndOwner = Me.hWnd
p.nFromPage = 1
p.nToPage = 1
p.nMinPage = 1
p.nMaxPage = 1
p.nCopies = 1
x = PRINTDLG(p)
Printer.Print Text1.Text
End Sub 在打印字符串时自动换行 其中 len1 为打印的宽度, Str 为打印的文本。 Do While Len(Str) > 0
str1 = Str
Do While len1 > 0 And Printer.TextWidth(str1) > len1
str1 = Left(str1, Len(str1) - 1)
Loop
Printer.Print str1 '打印
If Len(str1) = 0 Then Exit Do '不匹配
Str = Mid(Str, Len(Str1)+1) '截断!
Loop 打印机只打印一行 在 Win95 下,只有在使用 EndDoc 或 NewPage 时,打印机才开始打印,而且每次都要换页。使用以下的方法,可以只打印一行,并且可以把打印机的控制字符也直接发到打印机。
注意:如果打印机无汉字库,不能输出中文。 Open "PRN" For Output As #1
Print #1, "一行" 如何改变 Windows 预设的打印机? 在 VB 里面, 原本改变预设打印机的方法是:(假设安装有两种打印机(驱动程序)) Set Printer = Printers(0) ' 将预设打印机设定成第一种打印机
Set Printer = Printers(1) ' 将预设打印机设定成第二种打印机