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


HSPTV!掲示板


未解決 解決 停止 削除要請

2015
0107
名無しサイズ固定枠だけウィンドウ6解決


名無し

リンク

2015/1/7(Wed) 15:41:27|NO.66913

↓の投稿に、枠だけウィンドウの作り方が書かれていますが、サイズ固定にするにはどうすればよいのでしょうか。
http://hsp.tv/play/pforum.php?mode=pastwch&num=3691



この記事に返信する


ファルコン

リンク

2015/1/7(Wed) 15:56:36|NO.66914


     #uselib "USER32.DLL" #cfunc GetWindowLong "GetWindowLongA" int, int #func SetWindowLong "SetWindowLongA" int, int, int #define WS_SIZEBOX 0x00040000 ; サイズ変更できる #define WS_BORDER 0x00800000 ; タイトルバーを消す screen 0,640,480,2 onclick gosub *click // タイトルバーもどき color 0,0,255 boxf 0,0,ginfo(26),25 SetWindowLong hwnd, -16, GetWindowLong (hwnd, -16) - (WS_SIZEBOX+WS_BORDER) width ginfo(26)/2,ginfo(27)/2 // 再描画 ※(重要) gsel 0,1 stop *click sendmsg hwnd ,$a1,2,z return
上記のスクリプトから5行目のスクリプトだけを消すとサイズ固定ウィンドウにできます。



名無し

リンク

2015/1/8(Thu) 14:48:36|NO.66922

そうするとAero効果がかからなくなってしまうんです…



A.C

リンク

2015/1/9(Fri) 22:03:23|NO.66926

ようするに(サイズを変えるための)ウインドウ境界線を表示させたいけど
サイズは変えたくないってことですよね
変更できるサイズを固定しちゃうのはどうでしょう

#include "user32.as" wx=640 wy=480 bgscr 0, ginfo(20), ginfo(21),4 GetWindowLong hwnd, -16 SetWindowLong hwnd, -16, stat | 0x00040000 button "end",*e width wx, wy oncmd gosub *onminmax, 0x0024 stop *onminmax dupptr minmaxinfo, lparam, 40, 4 minmaxinfo(6) = wx // X最小 minmaxinfo(7) = wy // Y最小 minmaxinfo(8) = wx // X最大 minmaxinfo(9) = wy // Y最大 return 0 *e end
境界線にマウスを持っていくとポインターが変わりますけどサイズは変えられないです



A.C

リンク

2015/1/9(Fri) 22:09:17|NO.66927

おっと余計なものつけっぱなしでした、
bgscrの最後の「,4」は不要なので消してもらってOKです



a

リンク

2015/1/10(Sat) 13:06:01|NO.66928

名無しさんが最初に質問したスプリクトにて、

SetWindowLong hwnd, -16, GetWindowLong (hwnd, -16) - (WS_SIZEBOX+WS_BORDER)
16行目の、ここの部分の[WS_SIZEBOX]を消すと可変できなくなりましたよ。

SetWindowLong hwnd, -16, GetWindowLong (hwnd, -16) - (WS_BORDER)
こんな感じに置き換えます。



名無し

リンク

2015/1/19(Mon) 14:18:52|NO.66997

返信が大変遅れて申し訳ありません。
A.Cさんのスクリプトでうまくいきました。ありがとうございました。



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