バッファ
GPAGEの割り当て
| 0 |
SYSTEM |
| 1 |
SYSTEM |
| 2 |
FREE |
| 3 |
FREE |
現在の描画ページはWINGPAGEで取得可能。
FREEの部分をアプリケーションが自由に使える
確保
@WINBUFF
バッファを確保します。
OTYAX4.0~
引数
なし
戻り値
BFが0の場合エラーでシステムエラーが発生するのでRETURNする。
@WINBUFFGCLS
バッファをGCLSします。
OTYAX4.0~
引数
戻り値
なし
@WINBUFFP
描画対象をBFに切り替えます。
OTYAX4.0~
引数
戻り値
なし
@WINBUFFP2
描画対象を戻します。
OTYAX4.0~
引数
なし
戻り値
なし
@WINBUFFCPY
バッファの内容をウィンドウにコピーします。
そのままGCOPYするとwindowを端に寄せた際表示がおかしくなる。
OTYAX4.1~
引数
| BF |
バッファ |
| BF_X |
終点座標 |
| BF_Y |
始点座標 |
| BF_X2 |
終点座標 |
| BF_Y2 |
終点座標 |
コピー場所はWFX,WFY固定。それ以外の場所は@WINBUFFCPY2を
戻り値
なし
@WINBUFFCPY2
バッファの内容をウィンドウにコピーします。
そのままGCOPYするとwindowを端に寄せた際表示がおかしくなる。
OTYAX4.1~
引数
| BF |
バッファ |
| BF_X |
始点座標 |
| BF_Y |
始点座標 |
| BF_X2 |
終点座標 |
| BF_Y2 |
終点座標 |
| BF_X3 |
コピーされる座標 |
| BF_Y3 |
コピーされる座標 |
ウィンドウの相対座標で実際は+WFX,+WFYされるので画面からの座標で表示する際は-WFX,-WFYして渡すこと
戻り値
なし
SAMPLE
@S_PAINT
WINMLT[TSK]=PAINT_M
BF=0
GOSUB @WINBUFF
IF BF==0THEN GOSUB@SYS_ERR_BUFF:RETURN
PAINT_BF[PAINT_M]=BF
BFC=15
GOSUB @WINBUFFGCLS
PAINTF[PAINT_M]=0
WINTTL$="PAINT
PAINT_M=(PAINT_M+1)%2
WINCLS=1
RETURN
@C_PAINT
BF=PAINT_BF[WINMLT[TSK]]
GOSUB @WINBUFFC
GOSUB @WINCLOSE
RETURN
@WIN_PAINT
P=WINMLT[TSK]
PAINTF2=0
IF PAINTF[P]==0THEN PAINTF[P]=1:RETURN
IF WINACTV==0OR WINFLG[0]==3THEN PAINTF2=1
BF=PAINT_BF[P]BF_X=0BF_Y=0BF_X2=62BF_Y2=52
GOSUB @WINBUFFCPY
BF=PAINT_BF[P]
GOSUB @WINBUFFP
IF PAINTF2==0AND CLICK==0AND CLICK2==1THEN GLINE MOUSEX-WFX,MOUSEY-WFY,PAINTX[P],PAINTY[P],14
PAINTX[P]=MOUSEX-WFX
PAINTY[P]=MOUSEY-WFY
GOSUB @WINBUFFP2
RETURN
最終更新:2013年12月16日 19:27