当前位置:  开发笔记 > 编程语言 > 正文

在Microsoft Visual C++(而不是托管代码)中如何将PNG打印到打印机?

如何解决《在MicrosoftVisualC++(而不是托管代码)中如何将PNG打印到打印机?》经验,为你挑选了1个好方法。

我想做的事情似乎简单直接,我希望从Microsoft Visual C++(非托管代码)打印到打印机的PNG文件.



1> Cody Gray..:

由于问题很少或根本没有研究工作,我将把它视为一个家庭作业问题并提供正确方向的指示,而不是一个完整的解决方案......

如果您已经熟悉Windows编程*,您肯定知道所有图形操作都涉及绘制或操纵设备上下文.这就是Windows如何抽象出不同类型/品牌的输出设备之间的无数差异,并允许程序员为所有这些设备编写相同的代码.屏幕有设备上下文(即监视器),还有打印机的设备上下文.如果您在屏幕上绘制了任何内容,则您已经使用过屏幕设备上下文.打印机设备上下文的工作方式大致相同.

因此,您的第一个业务是创建/获取打印机设备上下文.我之前链接的文档可以帮助您入门,但是如果您找不到它,您想要的链接就是这个.

获得打印机设备上下文后,您只需要绘制任何内容即可.这可以是文本或图形 - 在您的情况下是PNG图像.由于GDI本身不支持PNG,因此使用PNG而不是比特图(BMP)会变得更加困难.这个问题以及网上其他地方的很多其他人都详细介绍了这个主题.但是,为了节省大量的阅读,简单的答案是你需要使用GDI +而不是GDI.该文档从此处开始.它有一个很好的C++ API,但它也可以从C使用.它可以作为(至少)Windows 2000工作,虽然在那些旧版本它确实需要一个可再发行的DLL.

使用GDI +,您将使用两个主要类:Graphics类(封装设备上下文)和Image类(表示图像,包括PNG).一旦创建了表示设备上下文的Graphics对象,并从图像中创建了Image对象,就可以调用Graphics对象的DrawImage实例方法来进行实际绘制.

我想你也会发现以下两篇有用的how-to文章:

如何:检索打印机设备上下文

如何:从Windows程序打印

请记住,如果您在尝试编写代码时遇到任何特定问题,请提出一个新问题,详细说明您尝试过的内容(最好显示一些示例代码).

*如果没有,你就会有很多工作要做.我建议购买一本能够彻底解释它的书.从阅读Stack Overflow答案中学习Windows编程相当困难.

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有