2.2.4 グラフィックスウインドウ

前のページ次のページ; 目次へ戻る

(17) グラフィックスウインドウは、鉄筋コンクリートの矩形断面を簡単な線図で描きます。このグラフィックス機能は、VB6で作成した汎用のグラフィックスプログラムVB_Graphicsのサブセットです。

(18) VB6が基本機能として持っているグラフィックス関連の命令は、あまり多くありません。ここでは線図を描くだけに限定しました。高度な機能は、WindowsのAPI関数群を利用しなければなりませんので、プログラムを重くしないために、これらの機能を使っていません。そうは言っても、Windowsの環境でグラフィックス利用するために、プログラミング上の工夫が必要です。その一つが、グラフィックスウインドウの寸法を変えたとき、それに合わせて図形を相似に拡大または縮小して再表示させることです。これを実現させるために、作図単位でサブルーチンにまとめてあります。これは、モニタウインドウの再描画 (7)で説明した方法と同じです。

(19) グラフィックスウインドウにはメニュー項目が多くあります。その中でAUTOREDRAWの(False/True)の切り替えの意義は分かり難いので、ここで解説します。これはグラフィックスのハードコピーをプリンタに出力させるときに利いてくる項目です。標準の設定はFalseになっていて、この状態で作画した図形は、FILE/Print サブメニューを行っても図が得られません。プリントを取りたいときは、作図開始の前にTrueにしておきます。VB6のフォームやピクチャーボックスへの作画命令は、Windowsのシステムでは内部的に二種類の区別があります。一つは、デスクトップのスクリーンに直接描き込むモード、もう一つはフォーム用のバッファーに一旦描き込んでおいて、そこからデスクトップのスクリーンに転送するモードです。前者は描きっぱなしの一過性のデータですので、フォームの寸法を変えたりすると画像は消えます。したがって、再描画はユーザのプログラムで行わなければなりません。後者は、フォームが他のフォームで隠され、それがなくなったときに欠けた部分をシステムが自動的に描き直してくれます(AUTOREDRAW=True)。しかし、書き直すために余分のメモリを内部で使うことになります。プリンタにデータを送るのは、このメモリのデータを使いますので、AUTOREDRAW=Trueにしておかなければなりません。

(20) グラフィックスウインドウの図形を他のアプリケーションで利用するために、ビットマップファイルに保存する、または、クリップボードに図形をコピーする機能を持っています。そのために、EDITメニューの中のサブメニューとしてSaveBmpFile, CopyToClpBrdを準備しました。これは、上の(19)で解説したメモリ内のビットマップデータを転送しますので、作図開始の前にAUTOREDRAW=Trueにしておきます。

(21) 上の(20)の逆で、画像ファイルから、またはクリップボードの図形データを読み込んでグラフィックスウインドウに表示できます。これはEDITメニューの中にサブメニューとしてReadBmpFile, PasteFromClpBrdを準備してあります。画像ファイルの拡張子としては、bmp以外に、gif, jpg なども読み込めます。ただし、図形はナマの寸法で読み込みますので、図の寸法の調整は利きません。読み込んだ画像データは、グラフィックスウインドウの壁紙のような形でシステムが管理しますので、VB6のグラフィックス消去命令Clsメソッドでは消えずに残ります。そのため、この壁紙画像の消去のため、EDITメニューの中にClearScreenサブメニューがあり、その中にCLSとPictureCLSと二つの画像消去命令を準備してあります。PictureCLSが壁紙画像データの消去用です。

(22) クリップボードの図形データは、テキストウインドウにPasteすることができます。テキストと共にプリントできます。ただし、ファイルに保存するときは、画像データは転送されません。

(23) グラフィックスウインドウのFILEのサブメニューには幾つかのサンプル図が組み込んであります。これは例題計算の説明用です。


次のページ;