如何将 MFC DC 与 QPrinter 关联?
我只是想知道是否可以使用我现有的 MFC 创建的 DC 与 QPrinter 关联,以便它直接使用现有的 DC,而不是使用 QPrintDialog 创建自己的 DC?
QPrinter
是否像 QWidget
一样使用 Qt 的后备存储,即它是否在打印之前创建离屏图像?
I was just wondering if it is possible to use my existing MFC created DC to associate with a QPrinter
so that it directly uses the existing DC rather creates its own with QPrintDialog
?
Does QPrinter
make use of Qt's backingstore as QWidget
does, i.e., does it create an off-screen image before printing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
第一件事:
QPrintDialog 与您的问题无关。
您可以在不使用 QPrintDialog 的情况下设置 QPrinter。
无论如何:您在 QPainter 中绘画,其中 QPrinter “只是”打印设备。仅当您结束 QPainter 时才开始打印。所以使用 QPrinter 时有一个后备存储。
您无法将 DC 转换为 QPainter,因此 QPrinter 无法对 DC 执行任何操作。最接近的事情是从 DC 获取位图并将其打印到新的 QPainter。
First thing:
QPrintDialog has nothing to do with your question.
You can set-up a QPrinter without using QPrintDialog.
Anyway: You paint into a QPainter where QPrinter is "only" the printing device. Printing only starts when you end the QPainter. So there is a backing store when using QPrinter.
You can't convert a DC to a QPainter so QPrinter can't do anything with a DC. The closest thing would be to get a Bitmap from the DC and print it to a fresh QPainter.