グラフィックス関数:LINETO,POLYGON,および RECTANGLE 関数で線を描画する時に使用される論理書き込みモードを設定します。
モジュール:USE DFLIB
形式
result = SETWRITEMODE (wmode)
wmode
(入力) INTEGER(2)。設定する書き込みモード。以下のシンボル定数値 (\DF98\INCLUDE サブディレクトリの DFLIB.F90 に定義されています) の 1 つでなければなりません。
$GPSET - 現在のグラフィックス色で線を描画します。(基本設定)
$GAND - 現在のグラフィックス色と現在の背景色の論理 AND を取った色で線を描画します。
$GOR - 現在のグラフィックス色と現在の背景色の論理 OR を取った色で線を描画します。
$GPRESET - 現在のグラフィックス色の論理 NOT を取った色で線を描画します。
$GXOR - 現在のグラフィックス色と現在の背景色の論理排他 OR (XOR) を取った色で線を描画します。
さらに,以下の 2 進ラスタ操作定数 (Win32 API SetROP2 のオンライン・ドキュメントを参照) の 1 つを使うことができます。
$GR2_BLACK
$GR2_NOTMERGEPEN
$GR2_MASKNOTPEN
$GR2_NOTCOPYPEN ($GPRESET と同じ)
$GR2_MASKPENNOT
$GR2_NOT
$GR2_XORPEN ($GXOR と同じ)
$GR2_NOTMASKPEN
$GR2_MASKPEN ($GAND と同じ)
$GR2_NOTXORPEN
$GR2_NOP
$GR2_MERGENOTPEN
$GR2_COPYPEN ($GPSET と同じ)
$GR2_MERGEPENNOT
$GR2_MERGEPEN ($GOR と同じ)
$GR2_WHITE
結果
結果の型は INTEGER(2) です。成功すれば,結果は以前の書き込みモードで,そうでなければ -1 です。
現在のグラフィックス色は SETCOLORRGB (または SETCOLOR) で設定され,現在の背景色は SETBKCOLORRGB (または SETBKCOLOR) で設定されます。例として,背景色を黄色 (#00FFFF),グラフィックス色を紫色 (#FF00FF) に設定する場合を考えます。以下のようになります。
oldcolor = SETBKCOLORRGB(#00FFFF) CALL CLEARSCREEN($GCLEARSCREEN) oldcolor = SETCOLORRGB(#FF00FF)
そして,書き込みモードを $GAND オプションで設定した場合,線は赤色 (#0000FF) で描画されます。$OR オプションで設定した場合,線は白色 (#FFFFFF) で描画されます。$GXOR オプションで設定した場合,線は青緑色 (#FFFF00) で描画されます。$GPRESET オプションで設定した場合,線は緑色 (#00FF00) で描画されます。書き込みモードを $GPSET に設定すると,線はグラフィックス色で描画されます。
互換性
STANDARD GRAPHICS QUICKWIN GRAPHICS LIB
関連情報
GETWRITEMODE,GRSTATUS,LINETO,POLYGON,PUTIMAGE,RECTANGLE,SETCOLOR,SETLINESTYLE
例
! QuickWin または Standard Graphics アプリケーションでビルドします。 USE DFLIB INTEGER(2) result, oldmode INTEGER(4) oldcolor TYPE (xycoord) xy oldcolor = SETBKCOLORRGB(#00FFFF) CALL CLEARSCREEN ($GCLEARSCREEN) oldcolor = SETCOLORRGB(#FF00FF) CALL MOVETO(INT2(0), INT2(0), xy) result = LINETO(INT2(200), INT2(200)) ! 紫色 oldmode = SETWRITEMODE( $GAND) CALL MOVETO(INT2(50), INT2(0), xy) result = LINETO(INT2(250), INT2(200)) ! 赤色 END