【问题标题】:Windows: print simple vector graphics - example?Windows:打印简单矢量图形 - 示例?
【发布时间】:2013-01-23 21:34:39
【问题描述】:

我想使用 Windows API 打印一些矢量图形(或者更准确地说:只不过是一些折线)。打印必须在自己的线程中完成。

当我向 Google/MSDN 询问一些 code-sn-ps 或示例时,我主要是找到如何使用一些 WindowsForms/.NET 废话进行打印的文档,但没有 WinAPI 示例。或者我发现 MS 提供的一个非常巨大的 XPS 打印示例,它非常令人困惑,而且不仅仅是向打印机发送一些数据。

所以我的问题是:有没有一个简单的例子来演示如何打印出一些愚蠢的行?

【问题讨论】:

  • 是的,有很多例子......在 C#/.NET/WindowsForms 中。在 MSDN 中有一个 C/C++ 示例,它非常庞大、令人困惑,并且包含许多废话。

标签: windows winapi printing vector-graphics polygons


【解决方案1】:

如果你想使用传统的 GDI 函数来做到这一点,你有两个主要步骤:

  • 首先,学习使用 GDI 函数在自己的窗口中绘图。此类别中的一些函数包括PolyLineLineTo - 等等。

  • 接下来,让它与打印机一起工作。这与在屏幕上绘制实际上是相同的概念,除了您获得的 HDC 代表页面的一部分而不是屏幕的一部分 - 并且涉及更多的设置和清理。在屏幕上绘图时,您可以直接获取窗口DC,绘制,您就完成了;打印到页面更复杂 - 您必须选择打印机、启动文档、启动页面等等。

我发现 this fairly decent tutuorial on Win32 GDI printing 可能对您有用 - 它涵盖了所有设置/清理步骤。需要注意的一件事是它将位图发送到打印机。相反,您希望将 StretchDIBits 调用替换为您自己的 PolyLine 等调用。

【讨论】:

  • 耶! - 对于它的价值,我通过谷歌搜索 startpage startdoc win32 example 或类似的东西找到了它 - 我对 Win32 足够熟悉,知道它必须具有的关键功能,然后这成为第二场比赛。
【解决方案2】:

这是非常基本的 GDI 功能。查看 MSDN 中的GDI line drawing functions。请注意,大多数语言和环境都有自己的 GDI 包装器,它们提供相同的功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多