〜 ウィンドウ 〜
ウィンドウ内をスクロールさせて表示

HSP2では、ウィンドウの表示サイズが、本来のウィンドウサイズよりも縮められている場合、
自動的にスクロールバーが付けられて、スクロールすることにより表示できるようになっています。
スクロールバーが表示された状態でも、デフォルトは左上座標を基点として表示されます。
時には左上からウィンドウサイズ分が見えているのではなく、
右や下にスクロールさせて表示したい場合もあるかと思いますので、そのサンプルを紹介します。
尚、HSP3以降は自動的にスクロールバーが付かない為、今回のTipsは対象外としてますが、
BMSCR構造体を設定しているものですので、
表示サイズよりも実際のウィンドウ内サイズの方が大きい場合はHSP3でも同様に使用することができます。
	

winscroll X移動量, Y移動量
X移動量ウィンドウ内のX方向スクロール量を指定する。
Y移動量ウィンドウ内のY方向スクロール量を指定する。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#module
#deffunc winscroll int, int
	mref x, 0 : mref y, 1
	mref bmscr, 67
	bmscr.23 = x, y
	width winx , winy	// スクロールバー更新用のダミー
	redraw 1		// 更新することで描画される
	return
#global

	screen 0, 400, 70, , 100, 100
	ichi = 200, 100
	pos  10, 20 : mes "左上基点"
	pos 100, 20 : input ichi.0, 40, 25, 3
	pos 150, 20 : input ichi.1, 40, 25, 3
	pos 200, 20 : button "移動", *scroll
	screen 2, 800, 600, , 100, 200, 400, 300
	color 255, 255 : boxf , , 400, 300 : color
	pos 50, 40 : mes "背景を黄色で塗りつぶしたこの部分が"
	pos 50, 80 : mes "左上のデフォルト表示エリアです"

*scroll
	winscroll ichi.0, ichi.1 // 自動でスクロールする
	stop