[リストへもどる]   [VBレスキュー(花ちゃん)]
一括表示

投稿時間:2005/07/15(Fri) 17:42
投稿者名:深廉
Eメール:
URL :
タイトル:
ピクチャーボックスの消去について
ピクチャーボックスに、Lineで線を描画した後、以下のソースでフォームごと印刷をしました。

    Printer.Orientation = vbPRORLandscape    '横向きに印刷
    Picture1.Picture = Picture1.Image
    Me.PrintForm
    Printer.EndDoc

すると、Picture1.Clsを使っても印刷されたラインが消去されず、ラインを再描画しようとすると
2つが重なって表示、印刷されます。
印刷をせずにラインを再描画した場合は、きれいに消去されているのでこの印刷部分が原因と思われ
ます。

初歩的なことでつまづいていると思いますが、ご教授願えないでしょうか。

投稿時間:2005/07/15(Fri) 19:02
投稿者名:K.J.K.
Eメール:akiya@koalanet.ne.jp
URL :
タイトル:
Re: ピクチャーボックスの消去について
いろいろツッコミどころはありますが、とりあえず。

まず、Printerオブジェクトを操作して印刷するのであれば、PrintForm
メソッドは使うべきではありません。というか意図したものにはなりません。
PrinterオブジェクトとPrintFormメソッドはそれぞれほぼ無関係ですので。

次に、Imageプロパティにある描画結果をPictureプロパティに移すので
あれば、幾つか候補はありますが、例えば、その後でAutoRedrawプロパティ
をFalseにするとか、より問題が少なくなるように、AutoRedrawがTrueの
PictureBoxはVisibleプロパティをFalseにしておき、表示用のそれとは
分離する、とかしておくべきですよね。

でまぁ、Formのイメージをそのまま出力するのならば、MSのページにAPI関数
を使ったサンプルがあったはずです。そうでなく、描画した結果を出力する
ことが主目的であるのならば、Printer.PaintPictureメソッドなどを駆使
すべきかと。

投稿時間:2005/07/15(Fri) 19:27
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: ピクチャーボックスの消去について
> 初歩的なことでつまづいていると思いますが、ご教授願えないでしょうか。

ここの[グラフィック関係]や[印刷関係]は杖にもならなかったでしょうか?

投稿時間:2005/07/18(Mon) 09:03
投稿者名:深廉
Eメール:
URL :
タイトル:
Re^2: ピクチャーボックスの消去について
返答送れて申し訳ありません。

横着をしようとしてPrintFormを使おうとしたことが、間違いの始まりですね。
面倒くさがらずに、Printer.PaintPictureを使います。

> ここの[グラフィック関係]や[印刷関係]は杖にもならなかったでしょうか?

どんなに便利な杖も、使う人間が愚かでは役に立たないということの好例です。すみませんでした。