2013-01-23 21 views
2

我想用Windows API打印一些矢量圖形(或者更確切地說:只不過是一些折線)。打印必須由自己的線程完成。Windows:打印簡單的矢量圖形 - 示例?

當我問谷歌/ MSDN一段代碼片段或例子我主要是找文檔如何使用一些WindowsForms/.NET廢話打印,但沒有WinAPI的例子。或者我發現一個真正由MS提供的XPS打印的例子非常令人困惑,並且不僅僅是將一些數據發送到打印機。

所以我的問題:是否有一個簡單的例子某處演示如何打印出一些愚蠢的線路?

+0

是的,在C#/ .NET/WindowsForms中有很多例子。在MSDN中有一個C/C++示例,它很龐大,令人困惑,並且包含許多垃圾。 – Elmi

回答

3

如果你想使用傳統的GDI函數來做到這一點,你有兩個主要步驟:

  • 首先,學會使用GDI函數在自己的窗口中繪製。此類別中的某些功能包括PolyLine,LineTo - 依此類推。

  • 接下來,得到它與打印機工作。這與繪製屏幕的概念非常相似,除非您獲得的HDC代表頁面的一部分而不是屏幕的一部分 - 此外還有更多設置和清理功能。在屏幕上繪圖時,您可以獲取窗口DC,繪製,然後完成;打印到頁面更多 - 您必須選擇打印機,啓動文檔,啓動頁面等。

我發現this fairly decent tutuorial on Win32 GDI printing可能適合你 - 它涵蓋了所有的設置/清理步驟。有一點需要注意的是它將位圖發送到打印機;相反,你會想用你自己的PolyLine等電話代替StretchDIBits電話。

+0

本教程非常棒 - 謝謝! – Elmi

+1

耶! - 對於它的價值,我通過搜索'startpage startdoc win32 example'或類似搜索找到了它 - 我對Win32非常熟悉,知道它必須具備的關鍵函數,然後將它作爲第二個匹配項。 – BrendanMcK

0

這是非常基本的GDI功能。查看MSDN中的GDI line drawing functions。請注意,大多數語言和環境都有自己的GDI包裝,它們提供相同的功能。