VB6.0でフォームやピクチャーボックスにLineメソッドやPrintメソッドで描画しています。SetDataメソッドでPictureBoxの描画などを送るり、ワードなどにペーストするとビットマップになり、またそれをプリントするとBackColorが白なのに、背景に薄いピンク色がついてしまいます。ドロー系で渡す方法はないのでしょうか?
VB6の標準のコントロールには、メタファイルを動的に生成する
機能はありません。そういう機能を持ったコントロールを探して
使うか、直接API関数を用いて生成するか、などしてください。
ありがとうございます。
やはり、APIですか。グーグルしてみましたが参考になる資料はあまり無いようですね。
灯台もと暗しで、このホームページの「VISUAL BASIC Q & A 掲示板」に掲載されていた古市さんのサイトのアーカイブログを参照すれば出来そうです。
どうもありがとうございました。
どうしても、VB標準のPrint、Line、Circleメソッドでメタファイルを
作成したい、という場合のために、「邪道」なサンプルを作ってみました。
http://www.koalanet.ne.jp/~akiya/vbtaste/vbp/MetaDraw.lzh
K.J.K.さんどうもありがとうございます。
古市さんのサンプルで一応メタファイル形式でクリップボードに貼り付けワードなどに転送はうまくいきましたが、正確な寸法での画像処理が必要でSetMapModeをMM_HIMETRICで描画していますが、スクリーン描画やコピー転送後の印刷で正しい寸法にならないので困っています。
K.J.K.さんのサンプルも検討させていただきます。
親切にも、早速サンプルを作っていただき、大変ありがとうございました。
あのサンプルは「8割は冗談」として作ってあります。
ですから、実用的なプログラムにしようとする際には、
真面目にAPI関数を直接用いて、きちんと計算して描画
することを薦めます。
で、寸法に関しては、デバイスに描画されるときには
そのデバイスにも依存する、というところには注意を
してください。
ありがとうございます。
昨年末に、初めてVBをインストールして使い始めたばかりで、過去にはHP-Basic、あとはMacでお遊び程度Cをほんの少しかじったものです。
APIでもう少しがんばってみます。
ツイート | ![]() |