リストビューを印刷するには?

解決


brother  2007-06-03 21:39:38  No: 65292  IP: 192.*.*.*

————————————————
|            ①                |
|———————————————|
||                            ||
||                            ||
||            ②              ||
||                            ||
|———————————————|
|            ③                |
————————————————

①③は文字をTextOutで描画しているのでhdcで印刷できましたが
②はリストビュー(CreateWindowEx)で作成し描画していますが
TextOutのように印刷する方法がわかりません。
どなたかご教授願えないでしょうか?
※印刷機能は自己作成でMFCでは作っていません

編集 削除
kuronuko  2007-06-07 15:15:32  No: 65293  IP: 192.*.*.*

リストビューからテキストをひとつひとつ取り出して、自分でTextOutしていくことになると思います。
自動的に印刷してくれるような便利な機能は見たことないです。

(1)と(3)の部分が既に印刷できているということなので、面倒ではありますが、難しくはないと思いますよ。
テキストの取得は、非MFCということなので、ListView_GetItemText とかで行えます。

ちなみに、MFCでのサンプルだと、こういったものが見つかりました。(試してませんが)
http://www.codeproject.com/listctrl/listprintdemo.asp

編集 削除
シャノン  2007-06-07 15:26:06  No: 65294  IP: 192.*.*.*

以前どこかで見たサンプルは、リストビューのハンドルに対して、プリンタのHDCをWM_PRINTで投げてました。

編集 削除
brother  2007-06-07 21:26:14  No: 65295  IP: 192.*.*.*

kuronukoさん、シャノンさん、ご回答ありがとうございます。

>リストビューのハンドルに対して、プリンタのHDCをWM_PRINTで投げてまし
>た。
→これはうまくいきませんでした。何かコツがいるのかもしれません。

>自動的に印刷してくれるような便利な機能は見たことないです。
→そうですか残念です。私もサイトをいろいろ探しましたが見つけられませんでした。

リストビュー全体を印刷することを考えすぎてテキストを取得して印刷することは思いつかなかったので参考になりました。

リストビューはカラムの文字や31行×11列あるので面倒ですが1行ずつテキストを格納して対応することにします。

どうもありがとうございました。

編集 削除