我想自己制作一个组件,提供打印线条、文本等内容。它提供一个打印方法,通过调用这个打印方法实现打印操作,当然它不控制一个打印页面,页面由调用者来控制,不知道该怎么调用?
我自己利用代码试过几种方法,都不能打印出任何内容。
方法一:调用者将 Printer 对象做为参数送给控件,然后利用送入的 Printer对象的方法 Printer.Line 函数进行打印,没有得到任何结果;
方法二:直接在控件内部利用 Printer.Line 函数进行打印,也没有得到任何结果;
方法三:利用 API 函数进行打印。 LineTo 函数,将 Printer对象的 hDc 句柄做为参数输入,然后利用这个句柄使用 Lineto函数打印线条,但是还是没有得到任何的结果。
请高手帮忙解答,谢谢!
我自己利用代码试过几种方法,都不能打印出任何内容。
方法一:调用者将 Printer 对象做为参数送给控件,然后利用送入的 Printer对象的方法 Printer.Line 函数进行打印,没有得到任何结果;
方法二:直接在控件内部利用 Printer.Line 函数进行打印,也没有得到任何结果;
方法三:利用 API 函数进行打印。 LineTo 函数,将 Printer对象的 hDc 句柄做为参数输入,然后利用这个句柄使用 Lineto函数打印线条,但是还是没有得到任何的结果。
请高手帮忙解答,谢谢!
加上了呀!方法二中,在所有的线条输出之后,调用了 Printer.EndDoc 方法。
在其它两个方法中,在调用这个打印方法之后,同样调用了 Printer.EndDoc 方法,但是就是什么都没有打印出来。
2,在代码中检查printer.height与printer.width及printer.scalemode
因为打印的页面控制不能在控件中完成,只能为调用者完成。
当然可以:
Public Sub PrintDatabase(ByRef objPrint As Object, ByVal strText As String)
With objPrint
.ScaleMode = vbMillimeters '以毫米为单位
.CurrentX = 20
.CurrentY = 30
objPrint.Print strText
If objPrint Is Printer Then objPrint.EndDoc
End With
End SubPrivate Sub Command1_Click()
PrintDatabase Printer, "Hello,world!"
End Sub
就是利用 Printer 做为对象进行传送过去即可。
不过开始为什么打印不出来,还没有搞明白。