いつもお世話になります。
他のプロセスのダイアログ画面と自プロセスのダイアログ画面を複数表示している場合で
自プロセス(デバッグ用)の画面を他のプロセスの画面の邪魔にならないように
後ろに表示させたいのですが時間に追われて調べる所までいきついていません。
アドバイスを頂けたら幸いです。宜しくお願いいたします。
WinDows 2000:Vs C++ 6.0(SP 4)
CWnd::SetWindowPos()でZオーダーを操作すればよいのでは。
sugarさん,ご回答ありがとうございます。
教えて頂いた関数を以下(※1,2)のように
ダイアログ画面のOnInitDialog()の中で
呼出したのですが画面が下位になってくれません。
※1
this->SetWindowPos( &(this->wndNoTopMost),0,0,0,0,SWP_NOACTIVATE |
SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW );
※2
this->SetWindowPos( &(this->wndBottom),0,0,0,0,SWP_NOACTIVATE | SWP_NOMOVE |
SWP_NOSIZE | SWP_SHOWWINDOW );
呼出す場所,引数等の使い方に問題があるのでしょうか?
OnInitDialogでは、確かにダメみたいですね。
ウィンドウは表示されているか否か、が関係しているみたいです。
ということで、ならばとウィンドウがアクティブになった時(WM_ACTIVATE)に
実行してみたところ、ウィンドウは後ろに回るようになりました。
試してみてください。
SetWindowPos(&wndBottom, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);
※あまりスマートなやり方ではない気がしますが...
Sugarさん,NEGさん
フォローありがとうございました。
おかげ様で制御できるようになりました。
今後とも宜しくお願いします。