1

以下のように、MFC からリッチ エディット コントロール (1.0) を作成しました。

m_hRichEditWnd = ::CreateWindow(_T("RichEdit"), csWindowName, ES_MULTILINE|ES_READONLY, 0, 0, 200, 200, NULL, 0, 0, 0);

ファイルからそのコントロールにテキストを読み込みました。このファイルは、改ページ用の ASCII 制御文字を含む複数ページの .txt ドキュメントです。リッチ エディット コントロールから印刷すると、改ページが表示されません。文字として出力されます。これらの改ページを取得する方法はありますか?

ここで説明されている方法と同様の方法を使用してコントロールから印刷していますhttp://msdn.microsoft.com/en-us/library/windows/desktop/bb787875(v=vs.85).aspx

4

1 に答える 1

0

そのため、実際には物理プリンターではなく .ps ファイルに出力していたということを省略しました。その .ps ファイルは、改ページを登録しないゴースト スクリプトによって pdf に変換されていました。これは、エディット コントロールが実際には内部で改ページを表示しないという事実によるものだと思います。また、印刷コマンドが機能する方法は、印刷デバイスへのグラフィック ブリットのようなものです。改ページは「画面上」にないため、.ps ファイルにはなりません。それは理論です。

私が見つけた唯一の解決策は、フォーム フィード文字の CRichEditControl に入る情報を解析することでした。フォーム フィード文字までのすべての文字をロードし、それをファイルに出力してから、EndPage() 関数を使用して手動でフォーム フィードを強制します。フォーム フィード文字がなくなるまで、この方法を続けます。次に、最後のフォーム フィードの後に​​残っているすべての文字を必ず印刷してください。

于 2011-11-12T04:12:28.827 に答える