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


HSPTV!掲示板


未解決 解決 停止 削除要請

2006
0413
bokeサブウィンドウ6解決


boke

リンク

2006/4/13(Thu) 15:39:30|NO.369

はじめまして
いきなり質問ですが
本体ウィンドウがID0でサブウィンドウがID1とします
サブウィンドウID1だけを閉じたいのですが
ふつうにend命令を使うと
ID0とID1が一緒に閉じてしまいます
どうしたらサブウィンドウID1だけを
閉じることができるのでしょうか



この記事に返信する


鴉吹雪

リンク

2006/4/13(Thu) 16:42:17|NO.370

自分は最近始めたのでご期待の回答にならないかもしれませんが一応

gsel 1,-1

↑ので非表示にできそうです。



ひらめ

リンク

2006/4/13(Thu) 19:01:42|NO.375

onexitとginfo_actを使えば複数ウィンドウに対応

onexit gosub *ending mes "メインです" screen 1 mes "サブ1です" screen 2 mes "サブ2です" stop *ending if ginfo_act=0 : end buffer ginfo_act return
これではメインウィンドウの「閉じる」ボタンを押したときに終了
サブだった場合はbufferで隠す、というものです
bufferはgselのほうがいいかも



ひらめ

リンク

2006/4/13(Thu) 19:03:43|NO.376

ginfo_actはシステム変数で、
現在アクティブなウィンドウIDが格納されています
システム変数についてはHSPのリファレンスを



Irisawa

リンク

2006/4/13(Thu) 21:11:58|NO.377

HSPではHSPのウィンドウ自体を一つだけ閉じることはできません。
(DestroyWindowを使用するとHSPが終了してしまう)

WM_CLOSEとWM_DESTROYメッセージをハックしてDestroyWindowを有効にすることは可能
ですが、この場合、一度閉じたウィンドウIDのウィンドウを再度作成はできなくなって
しまいます。

つまり、定石は上の方たちの仰るようにウィンドウを非表示にして必要になったら
再表示/再初期化するという方法になってしまいます。

# (BMSCR構造体のメンバを書き換えるなどで)無理矢理可能にできないのかな。



boke

リンク

2006/4/15(Sat) 16:18:21|NO.405

ご回答ありがとうございました
とても参考になりました



boke

リンク

2006/4/15(Sat) 16:19:26|NO.406

解決チェックをいれるのをわすれました



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