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


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0309
リアジウィンドウを動かすと動作が止まる9解決


リアジ

リンク

2007/3/9(Fri) 17:40:10|NO.6165

まえ見つけた気がするのですがなかなか見つからないので質問です
ウィンドウを動かそうとドラッグしていると動作が止まってしまいます
ウィンドウを動かしている間でも動作を動かすにはどうすればいいでしょうか



この記事に返信する


まじこ

リンク

2007/3/9(Fri) 18:38:45|NO.6167

>ウィンドウを動かそうとドラッグしていると動作が止まってしまいます
そっかードラッグが止まったら大変だねー
>ウィンドウを動かしている間でも動作を動かすにはどうすればいいでしょうか
動作はどうやっても動かなねーんじゃねーの?



まじこ

リンク

2007/3/9(Fri) 19:05:20|NO.6168

ちょっと言いすぎたかな。
少し反省w



うひょ

リンク

2007/3/9(Fri) 21:00:15|NO.6171

真面目に答えますと、(いつも答えられてる側のくせに)
WM_TIMERというウィンドウメッセージを使えばいいですよ。

まあ、とりあえずYahooで検索してみたらピッタリなものが先頭に出たのであとはご自分で。



のーなめ

リンク

2007/3/9(Fri) 22:55:57|NO.6177

>>ウィンドウを動かそうとドラッグしていると動作が止まってしまいます
>そっかードラッグが止まったら大変だねー
ウィンドウを動かそうと思い→ドラッグをした→動作が止まった。
ちゃんと日本語として読み取れると思うが・・・?



リアジ

リンク

2007/3/12(Mon) 15:55:22|NO.6228

? ドラッグがとまる?

WM_TIMERを調べましたがなかなか見つかりませんでした


title "タイトルバー" x=0 repeat cls pos x,0 boxf 0,0,x,10 if x==100 : x=0 x++ wait 1 loop
こういう風にゲームみたいに連続して動くものがあります
このウィンドウのタイトルバーをずっとクリックしていると動きが止まってしまいます
タイトルバーをクリックしていても止まらない方法はないでしょうか?
とまってちゃうのはしょうがないのかなあ・・



aaa

リンク

2007/3/12(Mon) 18:48:06|NO.6233

>とまってちゃうのはしょうがないのかなあ・・
かわいいなもう

http://yokohama.cool.ne.jp/chokuto/advanced/usertimer.html



Sioux

リンク

2007/3/12(Mon) 20:18:44|NO.6236

余計なものまで付け足しましたが、このような感じで出来ます。
; ###################################################
; FUNCTION #uselib "winmm.dll" ; LOAD LIBRARY #cfunc timer "timeGetTime" ; NEWFUNCTION ; REFER ... http://www.winapi-database.com/System/Time/timeGetTime.html ; DATA MACRO #define MAXFPS 32 ; ################################################### ; ------------------------------------------------ ; システムを立ち上げてからの経過時間を高精度に取得 ; ------------------------------------------------ OffsetTime = timer() StartTime = OffsetTime ; ------------------------------------------------ fps = 64 ; ゴール GOAL = 100.0 ; ゴールまでの到達時間 GOALTIME = 5.0; (s) repeat gosub *getfps // 処理が遅い場合はコマ落ちさせる if stat < MAXFPS : continue t = double(timer() - StartTime) / 1000 : if t > GOALTIME : StartTime = timer() // 現在のタイムを GOALTIME分 する affect = t / GOALTIME redraw 0 color 255, 255, 255 : boxf color : boxf 0, 0, GOAL * affect, 10 redraw 1 await 10 loop *getfps // 1 秒間で何回ループできるかを stat に返す (過去は調べていない) t = timer() count++ if (t - OffsetTime) / 200 { OffsetTime = t fps = count * 5 count = 0 } return limit(fps, 0, 2000)
わけが分からなければ fps がついている変数やルーチンをすべて削除してください。



aaa

リンク

2007/3/12(Mon) 20:41:40|NO.6238

>Sioux
残念だがそうじゃない
chokuto氏の借りると以下


#uselib "user32.dll" #func SetTimer "SetTimer" int,int,int,int #func KillTimer "KillTimer" int,int #define WM_TIMER 0x0113 #define TIMER_ID 1 screen 0, 300, 50:oncmd gosub *OnTimer, WM_TIMER:onexit goto *OnQuit SetTimer hwnd, TIMER_ID, 10, 0:stop *OnTimer : if wparam == TIMER_ID : gosub *RedrawClock return 0 *RedrawClock:redraw 0:c=255:color c,c,c:boxf c=0:color c,c,c:boxf 0,0,x,50:if x==300:x=0:else:x+=3 redraw:return *OnQuit : KillTimer hwnd, TIMER_ID : end



リアジ

リンク

2007/3/13(Tue) 17:43:57|NO.6268

なるほど!
タイマーの関数を使って繰り返し処理をすればウィンドウを動かしていても大丈夫なんですね
スクリプトも書いてもらってSiouxさんaaaさんありがとうございました



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