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


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0327
ゆうやんモーダルウィンドウを作成してみたのですが・・・。2解決


ゆうやん

リンク

2020/3/27(Fri) 23:06:49|NO.89842

モーダルウィンドウを作成してみたのですが、ウィンドウを閉じると他のウィンドウがアクティブになってしまいます。
他のウィンドウがアクティブにならないようにすることはできますか?

#include "user32.as" #define GWL_HWNDPARENT -8 screen 1,320,240,4|2 GetWindowLong hwnd, -16 SetWindowLong hwnd, -16, stat - $20000 button gosub "Close",*modal_close title "モーダルウィンドウ" gsel 0 Button "Open",*open onexit gosub *exit mwin=hwnd title "メインウィンドウ" stop *open gsel 1 SetWindowLong hwnd,GWL_HWNDPARENT,mwin EnableWindow mwin,0 gsel 1,1 stop *exit if wparam=1{ gosub *modal_close return } end stop *modal_close SetWindowLong hwnd,GWL_HWNDPARENT,0 EnableWindow mwin,1 gsel 1,-1 return



この記事に返信する


あらや

リンク

2020/3/28(Sat) 17:38:10|NO.89846

こういう感じでしょうか?

モーダルウィンドウを開いた状態で
ほかのウィンドウをアクティブにしている場合、
モーダルを閉じると取得したウィンドウ(元々アクティブだったウィンドウ)を
アクティブにします。

当然ですが、ほかのウィンドウがアクティブでない場合は
HSPのウィンドウ(ID0)がアクティブになります。

#include "user32.as" #define GWL_HWNDPARENT -8 screen 1,320,240,4|2 GetWindowLong hwnd, -16 SetWindowLong hwnd, -16, stat - $20000 button gosub "Close",*modal_close title "モーダルウィンドウ" gsel 0 Button "Open",*open onexit gosub *exit mwin=hwnd title "メインウィンドウ" stop *open gsel 1 SetWindowLong hwnd,GWL_HWNDPARENT,mwin EnableWindow mwin,0 gsel 1,1 stop *exit if wparam=1{ hFgwin = GetForegroundWindow(); // 閉じるボタンを押した時の最前面のウィンドウハンドル取得 gosub *modal_close return } end stop *modal_close SetForegroundWindow hFgwin; // 最前面ウインドウを取得したハンドルに設定 SetWindowLong hwnd,GWL_HWNDPARENT,0 EnableWindow mwin,1 gsel 1,-1 return



ゆうやん

リンク

2020/3/29(Sun) 09:48:32|NO.89852

すみません。自己解決しました。あらやさんの方法ではダメだったので、
*modal_close のラベルの後に、gsel 0,1を入れたらうまくいきました。

#include "user32.as" #define GWL_HWNDPARENT -8 screen 1,320,240,4|2 GetWindowLong hwnd, -16 SetWindowLong hwnd, -16, stat - $20000 button gosub "Close",*modal_close title "モーダルウィンドウ" gsel 0 Button "Open",*open onexit gosub *exit mwin=hwnd title "メインウィンドウ" stop *open gsel 1 SetWindowLong hwnd,GWL_HWNDPARENT,mwin EnableWindow mwin,0 gsel 1,1 stop *exit if wparam=1{ gosub *modal_close return } end stop *modal_close gsel 0,1 SetWindowLong hwnd,GWL_HWNDPARENT,0 EnableWindow mwin,1 gsel 1,-1 return



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.89842への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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