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


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
0111
Kain過去一番悩んでます3解決


Kain

リンク

2019/1/11(Fri) 18:30:57|NO.86302

ウィンドウの一番下辺りからウィンドウがぴょこっと出るものを作りたいんですが、
いかのスクリプトだと実行中にしたに隙間ができるんです...
あとから確認したんですが、一番最初になぜか指定したサイズ以上のウィンドウが表示され、
そのあとにウィンドウの位置が少し上らへんに出て下に隙間ができるようになってました...
自分ではとてもこの問題を解決できずに困っています...どうすれば下に隙間ができずに
下からぴょこっとウィンドウが出るようにできるのでしょうか?



この記事に返信する


Kain

リンク

2019/1/11(Fri) 18:31:41|NO.86303

スクリプト忘れてました

screen 0,1280,680,0,0,0 Big_Window_X=ginfo(10)-850 Big_Window_Y=ginfo(11) Big_Window_Y2=ginfo(11) bgscr 101,390,360,0,Big_Window_X,Big_Window_Y color 100,100,100:boxf Big_Window=0 i=0 repeat 45 setease 0,360,ease_quartic_out Big_Window = getease(i,50) Big_Window_Y3=Big_Window_Y-Big_Window width 390,Big_Window,Big_Window_X,Big_Window_Y3 i=i+1 wait 1 loop



沢渡

リンク

2019/1/11(Fri) 20:40:07|NO.86304

width文で指定している灰色ウィンドウの位置が、白ウィンドウの位置が
基準になっておらず、(なぜか)白ウィンドウの横幅や縦幅が基準になっているからです。
そのため、白ウィンドウの位置が変わると、灰色ウィンドウの位置が
白ウィンドウの位置と合わなくなります。

以下のように、まず白ウィンドウの(0,0)の位置がスクリーン上だと
どの位置になるのかをWinAPIを使って調べ、それを基準に配置するようにしてみました。
また、width命令でウィンドウの幅を変更しても実際に変更されるまでには
若干のタイムラグがあるようなので、ウィンドウの幅は変更せずに、
これまたWinAPIを使って、白ウィンドウと灰色ウィンドウを親子にするように
してみました。


#include "user32.as" screen 0,1280,680,0,0,0 hwnd0=hwnd //白ウィンドウのハンドル //白いウィンドウの0,0の位置のスクリーン上の座標を調べる dim point,2 point=0,0 ClientToScreen hwnd0,varptr(point) //白ウィンドウ上の座標がスクリーン上の座標に変換される Big_Window_X=point(0)+390 Big_Window_Y=point(1)+680 bgscr 101,390,360,0,Big_Window_X,Big_Window_Y hwnd1=hwnd //灰色ウィンドウのハンドル SetParent hwnd1,hwnd0 //灰色ウィンドウを白ウィンドウの子ウィンドウにする color 100,100,100:boxf Big_Window=0 i=0 repeat 45 setease 0,360,ease_quartic_out Big_Window = getease(i,50) Big_Window_Y3=Big_Window_Y-Big_Window flag=0 width ,,Big_Window_X,Big_Window_Y3 i=i+1 wait 1 loop



Kain

リンク

2019/1/13(Sun) 11:06:02|NO.86314

ありがとうございます!解決しました!!



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