以下の情報は古くなっており、参考の目的のみで残してあるものです。 GrWin の最新版はこちらから利用できます。
本ライブラリでは,(コンソール)アプリケーションの入出力はそのままにして,グラフィクス表示は同梱の grwnd.exe が行います。 つまり,本ライブラリは grwnd.exe にグラフィクス表示のためのコマンドを送る一種のインタープリターを構成するためのもの,といえます。
grwnd.exe 内部では仮想的な「用紙」が設定されていて,「用紙」の左上隅を原点とし,u 軸と v 軸をそれぞれ右向きと下向きにとった「論理デバイス座標系」が使われています。 「論理デバイス座標系」の単位はプリンタに出力するときの1ピクセルに対応しています。 また,「用紙」サイズの縦横比を保ったまま,「用紙」の短い方の辺の長さを1に規格化した座標系を「規格化論理座標系」と呼びます。 「規格化論理座標系」の原点は「用紙」の左下隅に固定され,右と上をそれぞれ正方向にとります。 ユーザーが定義した座標系は「ワールド座標系」と呼ばれ,本ライブラリのほとんどのルーチンではこの「ワールド座標系」を用います。「ワールド座標系」では原点や各方向の単位および正の向きは任意に設定できます。
ユーザーのアプリケーションから GrWin ライブラリの初期化ルーチン (GWINIT) を呼び出すと,grwnd.exe が起動し,メイン(フレーム)・ウィンドウが現れます。 ただし,GWINIT は GWOPEN (または GWOPENX) により内部的に 呼び出されますので, オプション指定が必要な場合を除いて明示的に GWINIT を呼び出す必要はありません。 なお,grwnd.exe は予め任意の方法で起動しておいても構いません。 grwnd.exe を起動するときにコマンドラインで初期設定ファイル名(以下参照)を指定することですべての起動オプション(以下参照)を一度に指定することができます。 また,起動オプションは [ヘルプ] → [起動オプション] のダイアログで対話的に指定することもできますし,コマンドラインで指定しなくてもデフォルトの初期設定ファイルファイルから自動的に読み込ませることもできます。 フレーム・ウィンドウのメニューバーからは,各子ウィンドウに対してのクローズ,消去,印刷といった操作も可能です(以下参照)。
起動時のさまざまなオプションは次項にあるとおりコマンドラインから指定することもできますが,通常は初期設定ファイル( .ini ファイル )で行います。 初期設定ファイルの拡張子は .ini で固定です。 どの初期設定ファイルが使われるかの優先順位は以下のとおりです:
初期設定ファイルにおける各設定は [Defaults] セクションで行います。 設定項目 DefaultDPI には grwnd.exe 内部で仮定される dpi 値を指定します。 dpi 値はビュー(表示)モードを [ビットマップ] にする場合やプリンタで印刷を行う際に参照されますが,何も指定しない場合(デフォルト時)には接続されているプリンタの解像度が使用されます。 しかし,この dpi 値が大きすぎると内部で作られるビットマップも巨大なものとなってしまい,大量のメモリを消費することになって搭載メモリ量によってはシステムが不安定になる恐れがあます。 それを避けるためには設定項目 MaxDPI に,仮定される dpi 値の上限を指定します。 システムについて熟知している場合はこの上限を大きめに設定してもかまいません。 その他の各項目およびそれらの意味についてはについては次項のコマンドライン・オプションを参照してください。 初期設定ファイル中で行頭に '#' がついた行の設定は無視されます。 以下に初期設定ファイルのサンプルを示します。
[Defaults] Storing=1 Buffering=1 StatusBar=1 Inquiring=0 Landscape=1 #Width=800 #Height=560 #PointX=0 #PointY=0 #DefaultDPI=300 MaxDPI=600 #ArrangeMode=2 #ShowMode=10 #ZOrder=1
起動方法: grwnd [オプション] [file.ini] [file1] [file2] ...
-p<X>,<Y> |
フレーム・ウィンドウの位置 (左上隅) をスクリーン座標の (X,Y) に設定 |
---|---|
-s<W>,<H> |
フレーム・ウィンドウの外接四角形のサイズをスクリーン座標で (W,H) に設定 |
-[dpi]<N> |
ビットマップ等の作成時のデフォルト dpi 値 ( N <= MaxDPI ) の設定 |
-a<N> |
ウィンドウの配置モードの設定。 GWarrange(N) と同等 (N = 1..4) |
1: -cascade, 2: -horizontal, 3: -vertical, 4: -iconarrange | |
-m<N> |
フレーム・ウィンドウの表示モードの設定。 GWshowfr(N) と同等 (N = 0..14) |
0: -hide, 1: -maximize, 2: -minimize, 3: -restore, 4: -show, | |
5: -showmaximized, 6: -showminimized, 7: -showminnoactive, | |
8: -showna, 9: -shownoactive, 10: -shownormal, | |
11: -topmost, 12: -notopmost, 13: -top, 14: -bottom | |
-z<N> |
フレーム・ウィンドウの表示 Z 順の設定。 GWshowfr(N+10) と同等 (N = 1..4) |
1: -topmost, 2: -notopmost, 3: -top, 4: -bottom | |
-t,-T | 保存モード ON,OFF |
-b,-B | バッファリング・モード ON,OFF |
-r,-R | ステータスバー表示 ON,OFF |
-i,-I | 確認モード ON,OFF |
-l,-L | プリンタのランドスケープ(用紙横置き)モード ON,OFF |
フレーム・ウィンドウ最上部の,タイトルが表示されているタイトルバーの下のバーは「メニューバー」,最下部のバーは「ステータスバー」と呼ばれていて,以下の機能があります:
メニューバーの [ファイル] からはファイルからの読み込み [開く] の他,現在のグラフィクス・データの印刷 [印刷],ファイルへの書き込み [保存], [名前を付けて保存],アクティブ・ウィンドウのクローズ [閉じる] といった操作が行なえます。 印刷時の注意点については下に記述がありますので参照してください。
なお,通常,右上隅のXボタンを押すか,左上隅のボタンを押して「閉じる」を選ぶことによってフレーム・ウィンドウを閉じることができますが,場合によってアプリケーション・エラーやメモリー・リーク(再利用不能のメモリー領域が生じてしまうこと)が発生する場合がありますので,ウィンドウを閉じるには,なるべくライブラリの GWQUIT を call するか,メニューバーから [ビュー]->[停止/終了] を選択してください。
[ファイル] からの操作は多くのウィンドウズ・アプリケーションの場合と同様ですので詳細は省略します。
[編集] からはクリップボード(以下参照)関連の操作を行うことができます。
[ビュー] からは主に子ウィンドウの表示に関係するコントロールを行います。 [停止/終了] からは描画中のジョブの停止や強制終了が可能です(以下参照)。[消去] はアクティブなウィンドウに属する保存オブジェクトを消去し,画面をクリアします。 [再生] は保存されているすべてのオブジェクトを忠実に再実行しますので,GWSLEEP などを使ったアニメーションも再生できます。 [再描画] は,描画のルーチンが実行されたはずなのに画面に表示されない場合や,何らかの理由で画面が崩れた場合に使います。 [再生] と違って, [再描画] では保存されている背景やバッファを利用してできるだけ短時間に再描画を行います。 [フラッシュ描画] は GWFLUSH の呼び出しと同等で,描画が保留されているオブジェクトのフラッシュ描画を実行します。
[ビュー] -> [保存モード],[バッファリング],[ステータスバー],[確認] は,それぞれ,保存モード,バッファ描画モード,ステータスバーの表示,確認モードの切り替えのトグル・スイッチです。 描画オブジェクト数が膨大で保存モードのままではコンピュータのメモリを使い切ってしまう場合などには保存モードを off,バッファ描画モードを on (この状態をペイント・モードと呼びます)にしてみてください。 ペイント・モードにすると,描画中のオブジェクト保存が行われないのでメモリ使用量が描画オブジェクト数に比例することもなく,速度的にも有利になります。 ただし,保存モードを off にすると,きれいな印刷ができなかったり, アニメーションの再生やウィンドウのリサイズやビュー(表示)モード(後述)の変更ができないといった制限が生じます。 なお,バッファ描画モードとは,現在の画面と同じ分解能の「用紙」を内部的にビットマップとして用意して画面への再描画を高速化するもので, 描画オブジェクトの数が極端に多い場合など再描画に時間がかかる場合に有効です。 ただし,バッファ描画モードでは画面上でのウィンドウの大きさにより必要となるメモリーが大幅に変化しますので,この機能がはたらかない場合にはウィンドウの大きさを小さくしてみてください。 メモリーは大量に消費されますが,以下で説明するビュー(表示)モードを [ビットマップ] にしてから,このバッファ描画モードを利用すれば,印刷時の1ピクセルを画面の1ピクセルに対応させた画面を高速にスクロールして見ることができます。 確認モードを ON にしておくと,保存オブジェクトの全消去が行われるときに警告のダイアログボックスを表示し,クリップボードの取り込みを行ったときにその内容が表示されます。
[表示モード] からはビュー(表示)モードの選択を行うことができます(以下参照)。
[ウィンドウ] -> [フィット] を選択すると,フレーム・ウィンドウのサイズを現在の (子) ウィンドウにフィットさせる。 [ウィンドウ] -> [最前面] はトグルスイッチで,ON の時にはフレーム・ウィンドウ全体をつねに最前面に置く。描画中のウィンドウが他 (たとえば,コンソール・ウィンドウ) に隠れないようにすることができる。 その他の [ウィンドウ] からの操作は多くのウィンドウズ・アプリケーションの場合と同様です。
[オプション] からは設定省略時のテキスト・フォントと記号フォント,前景色と背景色をそれぞれのダイアログボックスで選択することができます。
なお,「色の作成」ダイアログボックスの下部の 16 個の長方形の色は現在のカスタムカラーを示していて,ダイアログボックスからでもプログラムからでも変更することができます。
プログラムからカスタムカラーを変更する方法についてはライブラリ・マニュアルの GWCOLOR の項を参照してください。
[ヘルプ] からは grwnd.exe のバージョンやビルド番号,ディスプレーの解像度などを知ることができます。また,ライブラリ・マニュアルをここから参照することもできます。
grwnd.exe が起動され,アプリケーションからグラフィクス・ウィンドウが開かれるか,既存のファイルがオープンされると,フレーム・ウィンドウ下部のステータスバーにアクティブなウィンドウが属するアプリケーション番号とウィンドウ番号,開かれているウィンドウの数,現在のマウス位置(カーソルがグラフィクス・ウィンドウ内にあるときのみ有効),アクティブなウィンドウの左下と右上の点の座標(論理デバイス座標),メモリーに保存されているオブジェクト数が表示されます。 ステータスバーに任意の文字列を表示するルーチン GWSETMSG も用意されています。 [ビュー] -> [ステータスバー] でステータスバーを非表示にすれば,描画が若干速くなります。
グラフィクス・ウィンドウのビュー(表示)モードは [ビットマップ], [等方的], [フィット], [全体], [拡大] の中から選択することができます。ビュー(表示)モードの変更は,通常メニューバーの [表示モード] から行いますが,アプリケーションから GWVWMOD を呼び出すことでも可能です。 各モードの意味は以下の通りです:
印刷はメニューバーの [ファイル] -> [印刷] で行います。 "「用紙」" の幅が高さより広い場合には,必要に応じて印刷の前に,[プリンタの設定] でプリンタをランドスケープ(横長)に設定してください。 印刷結果はビュー(表示)モードに依存しますので,[印刷のプレビュー]で確認するとよいでしょう。なお,多くのプリンタ・ドライバでは塗りつぶしの機能 (GWFLOOD 参照) はサポートされていないようです。
[編集] から [コピー] を選ぶと現在のウィンドウの内容が Windows のクリップボードにコピーされますので,クリップボードをサポートしている他のアプリケーションで描画結果を処理することができます。 その逆に,クリップボードからビットマップを取り込むこともできます。 そのためには,[編集] から [取り込み] を選択してください。 これにより,ビットマップ番号 0 にクリップボードの内容が取り込まれます。 このとき,確認モードが ON の場合には取り込んだ内容がダイアログボックスに表示されます。 GWCOPYBMP により,ビットマップ番号 0 の内容を他の番号にコピーすることで,クリップボードからの取り込みを何度でも行うことができます。 なお,ビットマップ番号についてはライブラリ・マニュアルの GWGETBMP の項を参照してください。
途中結果を印刷したいときや,予期していない表示が行われたり,実行時間が長すぎるなどした場合に表示を一旦停止,または実行そのものをキャンセルしたい場合があります。 そのようなときは,目的のウィンドウをアクティブにしてから,メニューバーの [ビュー] -> [停止/終了] を選択してください。強制終了するかどうかのメッセージボックスがポップアップして表示は一旦停止しますので,印刷やビュー(表示)モードの変更,ウィンドウサイズの調整など,任意の作業を行うことができます。実行を継続する場合には「いいえ」ボタンを,強制終了したい場合には「はい」ボタンを押してください。
Last modified: Wed Jun 18 7:00:00 JST 2003