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


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
1012
スペース子ウィンドウを作るとフリーズする2解決


スペース

リンク

2016/10/12(Wed) 14:51:14|NO.77100

ソースコードは以下のページの物を一部書き換えた物です。
http://lhsp.s206.xrea.com/hsp_object1.html#11


// ラジオボタン表示サンプルスクリプト (by Kpan) #include "user32.as" ; 1番目のグループ x2 = 1 chkbox "あ", x1 SetWindowLong objinfo(stat, 2), -16, $50000009 | $20000 chkbox "い", x2 sendmsg objinfo(stat, 2), $F4, $9 ; 2番目のグループ pos , 80 y2 = 1 chkbox "A", y1 SetWindowLong objinfo(stat, 2), -16, $50000009 | $20000 chkbox "B", y2 sendmsg objinfo(stat, 2), $F4, $9 ParentHwnd = hwnd bgscr 1, 300,200, 2:gsel 1,1 SetParent hwnd, ParentHwnd width 100,100,200,200 boxf stop

"枠のないウィンドウをgselでアクティブにし子ウィンドウに設定"すると、
最後に設置したラジオボタンのグループをクリックした瞬間にソフトがフリーズ(応答なし)します。

gselのp2に0以下を指定、通常の枠ありウィンドウ、子ウィンドウに設定しない、
のどれかを満たせばフリーズは発生しないようです。

何故このソースコードでフリーズするのでしょうか?



この記事に返信する


InoueSoftware

リンク

2016/10/12(Wed) 19:43:16|NO.77103


bgscr 1, 300,200, 2:gsel 1,1
の後に、

GetWindowLong hwnd, -16 SetWindowLong hwnd, -16, stat|0x20000/*WS_GROUP*/
を入れれば治ります。
原因は、BS_AUTORADIOBUTTONの自動制御バグです。
ラジオチェックの点はウィンドウスタイルにWS_GROUPがあるコントロール間をうろうろするので、
その間にラジオチェック以外が入ると動作がおかしくなりフリーズするわけです。
WS_GROUPで、間を閉じましょう。



スペース

リンク

2016/10/12(Wed) 19:53:28|NO.77104

>>InoueSoftwareさん
フリーズするあたり、何か無限ループしているのかな?と推測はしていたのですが、
そういうことだったんですね。
ありがとうございました、無事解決です。



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