HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2011
0208
ひらまるウィンドウの最小サイズを決めるには2解決


ひらまる

リンク

2011/2/8(Tue) 20:07:22|NO.36965

ウィンドウの端を掴んでリサイズする場合、
どれだけ引っ張っても、スクリーン初期化時のサイズより大きくすることはできませんが、
逆に、どれだけ引っ張っても指定したサイズ以下にならないようにするにはどうしたら良いでしょうか。

以下の方法は、ウィンドウのサイズが変更されたときに、ウィンドウのサイズとマウスの座標を強制的に変更する方法ですが、
ウィンドウサイズが変更されてから判定するのでちらつきます。

;スクリーン1のサイズが300x300以下にならないようにする。 gsel 0, -1 screen 1 oncmd gosub *ReSize, 5 ;ウィンドウの余白サイズ取得 FrameW = ( ginfo_sizex - ginfo_winx ) / 2 FrameH = ginfo_sizey - ginfo_winy - FrameW stop *ReSize W = ginfo_winx H = ginfo_winy Mouse_X = ginfo_mx Mouse_Y = ginfo_my if W <= 300 : width 300, H : Mouse_X = ginfo_wx1 + FrameW + 300 if H <= 300 : width W, 300 : Mouse_Y = ginfo_wy1 + FrameH + 300 mouse Mouse_X, Mouse_Y return



この記事に返信する


inovia

リンク

2011/2/8(Tue) 21:03:54|NO.36967

過去ログ - ウィンドウの最大サイズ
http://hsp.tv/play/pforum.php?mode=pastwch&num=31098

タイトルは逆になっていますが、最小サイズも指定できます。



ひらまる

リンク

2011/2/8(Tue) 22:07:58|NO.36973

ありがとうございます。
定数、0x24のメッセージが来たときに、
MINMAXINFO的な構造体のポインタ配列?
に最小サイズと最大サイズを代入するということでしょうか。

gsel 0, -1 MinX = 300 MinY = 300 MaxX = ginfo_dispx MaxY = ginfo_dispy screen 1, MaxX, MaxY width 640, 480 oncmd gosub *minmax, 0x24 stop *minmax dim MINMAXINFO, 9 dupptr MINMAXINFO, lparam, 4 * 2 * 5, 4 MINMAXINFO( 6 ) = MinX MINMAXINFO( 7 ) = MinY MINMAXINFO( 8 ) = MaxX MINMAXINFO( 9 ) = MaxY return
実装するのは容易でしたが、
定数、0x24が何という名前のマクロ定数なのかわからず、
1行目でuser32.asを読み込んでいるのも謎ですね…

あとは気が向いたときにMSDNなんかでコツコツ調べてみます。
ありがとうございました!



ONION software Copyright 1997-2023(c) All rights reserved.