...これで、あってますかね?違ってたらごめんなさい(^^;)
// *** インクルード *** //
#include "user32.as"
#include "obj.as" ; [!] APIを使用するのが面倒くさい人用
// *** ウィンドウメッセージの定義 *** //
#define WM_SIZE 0x0005
// *** ウィンドウの作成や設定 *** //
screen 0, GINFO_DISPX, GINFO_DISPY, 0, -1, -1, 640, 360
title "ウィンドウサイズに伴うオブジェクトサイズの変更"
GetWindowLong hwnd, -16
SetWindowLong hwnd, -16, stat | $10000 | $40000
sendmsg hwnd, $112, $F030
// *** ウィンドウメッセージの割り込み *** //
oncmd gosub *_OnSize, WM_SIZE
// *** オブジェクトの設置 *** //
textBox = ""
repeat 256
textBox = textBox + "文字を埋めます"
loop
font "Yu Gothic UI", 20
objmode 2
mesbox textBox, GINFO_WINX, GINFO_WINY, 1
objectID = stat ; [!] オブジェクト関係の命令は stat にオブジェクトIDが返されます
gosub *_OnSize ; [!] 初期のみ実行
stop
// *** ウィンドウサイズ変更時 *** //
*_OnSize
getobjsize r, objectID
r(0) = GINFO_WINX
r(1) = GINFO_WINY
resizeobj objectID, r
return
★今回はAPIから簡単にオブジェクトサイズを変更できる「obj」というモジュールを使用していただきました。
今回のポイントはウィンドウメッセージです。知ってたら飛ばしてください。
例えば、ウィンドウが終了したり、クリックしたり、動いたり...など(詳細→
http://note.phyllo.net/?eid=1106271)
簡単(?)に言えば、対象のウィンドウに何かが起きるのを検知するセンサーのようなものです。
→今回の場合は、ウィンドウのサイズが変更された時に指定したラベル(*_OnSize)に飛ぶようにしています。
※objのモジュールについてはHDLの方をご確認ください。