ダイアログ画面を常時前方表示させたい – プログラミング – Home

ダイアログ画面を常時前方表示させたい
 
通知
すべてクリア

[解決済] ダイアログ画面を常時前方表示させたい


hg
 hg
(@hg)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

いつもお世話になっております。hgです。

ダイアログ画面を複数表示している中で、ある特定のダイアログ画面を表示させる際に、
常時前面に表示させたく、以下のようにダイアログのプログラムを記述したのですが、
前方に出ない場合があります。

void CXXXDlg::OnShowWindow(BOOL bShow, UINT nStatus){
:
SetWindowPos( &wndTopMost,0,0,0,0, SWP_NOMOVE | SWP_NOSIZE );
:
}

常時、前方に表示させるようにするにはどのようにしたらいいか、知っている方がいました
ら、ご教授いただけたら幸いです。宜しくお願いいたします。

開発環境:
WinDows 2000:Vs C++ 6.0(SP 4)


引用未解決
トピックタグ
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

他のウィンドウにもwndTopMost属性が付いていたら、
それが手前に出てしまうのと止めることはできないと思います。

#もし、もっと強力な「常に全てのウィンドウより手前に出る機能」という
#機能があったとしても、他のアプリケーションがその機能を使ってしまえば…


返信引用
ttt
 ttt
(@ttt)
ゲスト
結合: 22年前
投稿: 3
 

自分のダイアログで、ほかのウインドウへのメッセージをフックして、
その他のウインドウをアクティブにするメッセージであればその後自分のダイアログを最前面に
出すとか?


返信引用
hg
 hg
(@hg)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

基本的な質問をして申しわけありませんが、自分のダイアログ画面の属性をwndTopMostとし、
それ以外のダイアログについてwndTopMostを設定していなかった場合、自分のダイアログ画面
が開いている状態で他のダイアログ画面を開こうとした場合、強制的に自分のダイアログ画面が
上にくるんですか?


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

>自分のダイアログ画面の属性をwndTopMostとし、
>それ以外のダイアログについてwndTopMostを設定していなかった場合、
>自分のダイアログ画面が開いている状態で他のダイアログ画面を開こう
>とした場合、強制的に自分のダイアログ画面が上にくるんですか?

そうです。
しかし、他のダイアログが自分のダイアログの
子ウィンドウである場合は、他のダイアログが上に出ます。


返信引用
hg
 hg
(@hg)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

レス遅れてすいません。

常時前面に表示するダイアログ画面(一画面)については、属性をwndTopMostに設定し、
その他複数の画面については、属性をwndTopに設定することにより、問題が解決しまし
た。

アドバイスをして下さった皆様、どうもありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました