「常に前面に表示」の処理の仕方は?

解決


Gach  2003-07-18 14:25:50  No: 4172  IP: 192.*.*.*

毎回お世話になっています。

「常に前面に表示」のON/OFFを出来るようにしているのですが、fsStayOnTopを
ONにしている状態でShowModalで設定ウィンドウなどを表示させると、すべての
ウィンドウが最前面に来なくなってしまいます。
ApplicationEventsを利用して前面に出し続ける方法もやってみたのですが、
これだと設定にかかわらず常に最前面に出るようになってしまい、うまく動作
しませんでした。
「常に前面に表示」がONになっている時だけ全てのウィンドウを最前面に出す
にはどうすればよいのでしょうか?
ご教授ください。

編集 削除
シュークリーム  2003-07-18 19:30:52  No: 4173  IP: 192.*.*.*

他に良い手があるかもしれませんので、
私が以前しようしたのは
SetWindowPos という関数です。
これを使用して要所で設定すれば可能です.

>「常に前面に表示」がONになっている時だけ全てのウィンドウを最前面に出す
>にはどうすればよいのでしょうか?
これを実現するには
フラグを見ながら各フォームでSetWindowPosを設定すれば可能

編集 削除
Gach  2003-07-18 21:48:08  No: 4174  IP: 192.*.*.*

シュークリームさんありがとうございます。
色々やってみたんですが、SetWindowPosをどのタイミングで設定すれば
良いのかよく分かりません。
ApplicationEventsのDeactiveを使う以外に何かないでしょうか?

編集 削除
シュークリーム  2003-07-23 09:49:51  No: 4175  IP: 192.*.*.*

私はShowModalを呼びだした元のフォームの
OnActiveで呼びだすようにしました。
他にはタイマーを使用して定期的に呼びだす
という手も考えられますが

編集 削除
Gach  2003-07-23 11:32:01  No: 4176  IP: 192.*.*.*

シュークリームさんありがとうございます。

何とか考えているような動作が出来そうです。
一応、解決としたいと思います。
ありがとうございました。

編集 削除