ウィンドウの大きさと場所の制御

SETWSIZEQQGETWSIZEQQ は,ウィンドウの視覚的表現用の大きさと場所を設定および取得します。可視の子ウィンドウの場所と大きさは,文字数単位の高さと幅で表現されます。フレーム・ウィンドウの場所と大きさは,画面のピクセル数で表現されます。場所と大きさは,DFLIB.MOD に定義されている構造型 qwinfo に,次のように返されます。

	TYPE QWINFO
	   INTEGER(2) TYPE	! Type of action performed by SETWSIZEQQ.
	   INTEGER(2) X		! x-coordinate for upper left corner.
	   INTEGER(2) Y		! y-coordinate for upper left corner.
	   INTEGER(2) H		! Window height.
	   INTEGER(2) W		! Window width.
	END TYPE QWINFO

qwinfo 型のオプションについては,「SETWSIZEQQ」に説明があります。

GETWSIZEQQ は,現在のフレーム・ウィンドウまたは子ウィンドウの場所と,現在または最大ウィンドウの大きさを返します。子ウィンドウに関する情報を参照するには,その子ウィンドウに関連付けられた装置番号を指定します。装置番号 0,5,6 は,OPEN 文で明示的に開かなかった場合,起動時の基本ウィンドウを参照します。フレーム・ウィンドウに関する情報を参照するには,装置番号をシンボル定数 QWIN$FRAMEWINDOW として指定します。次に例を示します。

	USE DFLIB
	INTEGER(4) status
	TYPE (QWINFO) winfo
	OPEN (4, FILE='USER')
	...
!	Get current size of child window associated with unit 4.
	status = GETWSIZEQQ(4, QWIN$SIZECURR, winfo)
	WRITE(*,*) 'Child window size is ', winfo.H, ' by ', winfo.W
!	Get maximum size of frame window.
	status = GETWSIZEQQ(QWIN$FRAMEWINDOW, QWIN$SIZEMAX, winfo)
	WRITE(*,*) 'Max frame window size is ', winfo.H, ' by ', winfo.W

SETWSIZEQQ は,可視ウィンドウの場所と大きさの設定に使用されます。次に例を示します。

	USE DFLIB
	INTEGER(4) status
	TYPE (QWINFO) winfo
	OPEN (4, FILE='USER')
	winfo.H    = 30
	winfo.W    = 80
	winfo.TYPE = QWIN$SET
	status     = SETWSIZEQQ(4, winfo)