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


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
0905
taro複数ウィンドウ利用時、片方だけを閉じたい2解決


taro

リンク

2016/9/5(Mon) 20:08:43|NO.76795

はじめまして。

現在ツール系のソフトを制作中なのですが、各種設定をしてもらう際など、1つ目のウィンドウを残したままで二つ目のウィンドウを利用する事があります。

 この時、現在は

≪A 新たなウィンドウを開いたとき≫
 ・screen命令でウィンドウID1を作成
 ・User32.dllのEnableWindow関数でウィンドウID0を無効化(操作できないようにする)
 ・画面描画、ユーザが操作

≪B ユーザがOKやキャンセルをクリックした時≫
 ・先程のEnableWindow関数でウィンドウID0を有効化(元に戻す)
 ・gselでうぃんどうID1を非表示
 ・gselで操作先を0に戻す

という操作をしています。

しかし、このやり方ではAlt+F4のキーボード操作や、ウィンドウ右上の×ボタンのクリックなどでウィンドウ0も一緒に消え、ソフト全体が終了してしまいます。

 私もonexitを使って上記Bの個所にジャンプする方法を考えましたが、この方法ではタスクマネージャからの終了要求やwindows事態の終了の際に本来のonexitでの処理である保存やメモリ会報などの処理が出来なくなってしまいます。(onexitでのジャンプ先で条件分岐する方法もなしではないと思いますが、さまざまな要因が考えられるのであまり現実的ではないかと思っています。)

 これを回避し、「名前を付けて保存」などのダイアログのように、片方のウィンドウだけを閉じるようにする方法が分かる方、教えてください。



この記事に返信する


tomato

リンク

2016/9/5(Mon) 20:15:04|NO.76796




taro

リンク

2016/9/9(Fri) 15:36:35|NO.76825

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



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