如何在富文字控制項中列印內容?

Mondo 科技 更新 2024-01-28

出於某種原因,人們確實對列印富文字控制項中的內容感到困惑。 我不是印刷專家,但我在研究了材料後已經弄清楚了,所以我要在這裡記錄下來。

解決問題的關鍵是這條訊息:em formatrange。 每次傳送訊息時,小部件的內容都會列印一些,然後訊息返回尚未列印的文字的第乙個字元的索引,然後它可以根據此索引繼續將其傳遞給下一段文字。 剩下的就是簡單的設定和資源破壞。

我們首先獲取頁面的尺寸,並使用 em setTargetDevice 訊息告訴富文字控制項我們打算呈現的內容。 接下來,我們需要填寫 FormatRange 結構,為此,我們指定要渲染到的 HDC 和紙張大小。 但是角色的範圍呢?

我們很懶惰,讓富文字控制項為我們處理它:我們選擇所有文字,然後讓富文字控制項告訴我們剛剛選擇的內容,它以字元排列的形式返回,這正是我們所需要的。

接下來是列印迴圈。 雖然仍有文字要列印(並且我們沒有遇到錯誤),但我們開始乙個新頁面並要求富文字控制項呈現頁面,記住下一頁應以 ** 開頭,然後結束當前頁面。

請注意,執行檢查以確保格式文字控制項向前移動。 如果沒有,那麼我們最終會陷入無限迴圈,列印出一張空白頁!(我不知道這在理論上是否可行,但我同樣會阻止它。 )

列印迴圈完成後,我們通過傳送最終的 em formatrange 訊息讓富文字控制項知道我們已完成,並且可以丟棄它快取的資訊。

我們可以使用過去幾天學到的所有資訊來製作乙個簡單的“列印 RTF”程式。

我們建立乙個富文字控制項,並使用在命令列上傳遞的檔案填充它。 然後,我們要求 printdlg 函式為我們提供使用者預設印表機的 DC。 我們給文件乙個標題,啟動文件,將富文字列印到文件中,然後結束文件(如果在列印過程中出現問題,則中止文件)。 稍微清理一下,程式就停止執行了。 乙個小程式,可以列印任何RTF檔案,沒有任何特別難以理解的檔案。

總結。 我有時真的很想將列印功能放在需求列表的最後一行,但在現實世界中,此功能可能是某種型別的使用者最需要的。 所以,盡你最大的努力去擁抱你最害怕的東西。

最後。 Raymond Chen 的“The Old New Thing”是我最喜歡的部落格之一,它有很多關於 Windows 的小知識,這對 Windows 開發人員真的很有幫助。 **how do i print the contents of a rich text control?》

相關問題答案

    如何傳送釘釘富文字?以三種不同的方式解析

    釘釘提供了豐富的功能,允許使用者在訊息中新增富文字內容,包括文字樣式 鏈結 等。以下是在釘釘中傳送富文字的三種方式 .在聊天視窗中使用編輯器 第 步 開啟與要向其傳送富文字訊息的個人或群組的聊天視窗。步驟 在輸入框中,單擊右側 aa 圖示,這將開啟富文字編輯器。第三步 在編輯器中,您可以格式化文字,...

    如何安裝印表機調節器

    印表機調節器是一種用於保護印表機免受電壓波動和尖峰電流影響的裝置。如果您在使用印表機時經常遇到電壓不穩定問題,安裝電壓調節器非常重要。在本文中,我們將向您展示如何正確安裝印表機調節器以確保印表機正常執行。第 步 了解調節器的工作原理。在開始安裝之前,您需要了解調節器的工作原理。電壓調節器通過在電壓波...

    如何以低價銷售價格控制的產品

    如何以低價銷售價格控制的產品 隨著網際網絡的發展,越來越多的價格控制產品湧入市場,使商家面臨激烈的競爭。但是,一些商家希望能夠以低價出售他們的產品,同時保持一定的利潤率。本文將介紹一些以低價銷售受控產品並同時獲得良好回報的策略和方法。 分析市場需求。在銷售價格控制產品之前,您首先需要了解市場需求。市...

    如何控制電商平台

    如何控制電商平台 隨著網際網絡的發展,電子商務平台已經成為我們日常生活的一部分。然而,隨著平台的擴張和使用者數量的增加,如何控制電商平台也成為乙個重要問題。本文將討論電子商務平台控制的重要性 現狀和可能的解決方案。.電商平台管控的重要性。首先,電商平台管控有助於保護消費者的權益。通過建立嚴格的商品審...

    如何橫向列印 A4 紙

    在我們的日常工作和習中,我們經常需要列印出文件或文件。但是,有時我們需要水平列印文件以適應特定的格式或需求。那麼,如何在 A 紙上列印風景呢?接下來,我們將為您詳細介紹在A紙上橫向列印的方法和步驟。.選擇合適的印表機。首先,確保您使用的印表機支援在 A 紙上橫向列印。大多數現代印表機都具有此功能,但...