- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ダイアログ最前面表示時の後ろの画面操作について)
ダイアログ最前面表示時の後ろの画面操作について
このQ&Aのポイント
- ダイアログ最前面表示時に後ろの画面操作を制限する方法について調査しています。開発環境はWindowsXP VC++6.0 MFCを使用しており、ダイアログベースの画面(A.exe)でボタンを押下すると子画面(A_Child)が表示されます。表示方法はDoModal()を使用しています。A_Childダイアログが最前面に表示されている間、デスクトップ上の操作を制限したいのですが、うまくいきません。SetWindowPos()やModifyStyle()を試しましたが効果がありません。対象は自分たちが作成したアプリだけでも操作不可能にしたいです。
- ダイアログ最前面表示時に後ろの画面操作を制限する方法を探しています。開発環境はWindowsXP VC++6.0 MFCを使用しており、ダイアログベースの画面(A.exe)でボタンを押下すると子画面(A_Child)が表示されます。表示方法はDoModal()を使用しています。A_Childダイアログが最前面に表示されている間は、デスクトップ上の操作ができないようにしたいです。SetWindowPos()やModifyStyle()を試してみましたがうまくいきませんでした。何か方法があれば教えてください。
- ダイアログ最前面表示時に後ろの画面操作を制限する方法を探しています。開発環境はWindowsXP VC++6.0 MFCを使用しており、ダイアログベースの画面(A.exe)でボタンを押下すると子画面(A_Child)が表示されます。表示方法はDoModal()を使用しています。A_Childダイアログが最前面に表示されている間は、デスクトップ上の操作ができないようにしたいです。SetWindowPos()やModifyStyle()を試しましたがうまくいきません。自分たちのアプリだけでも操作不可能にする方法があれば教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
レベルが低くてしかもMFC使ったことない自分がWin32 APIの知識で語ります・・。 なるべく共通する表現で書いたつもりです。 #(例:スタート→ログオフでダイアログが表示しますよね。 その時ってそのダイアログ以外は触れないですよね。) あれってダイアログだったんだ・・。 でも、[Alt]+[Tab]で簡単に他のウィンドウに切り替えて、同時に消滅しません? マウスで画面操作を無効にしたいのであれば、WS_POPUPスタイルのウィンドウに背景色(HBRUSH)をNULLにセットして、画面いっぱいに描画すれば、あたかもマウス操作ができなくなっているようになると思います。 なので、[Alt]+[Tab]などでの切り替えを許していいというのであれば、[透明ダイアログ表示]→[見せたいダイアログ表示]という順で表示すればいいと思います。
お礼
返答ありがとうございます。 実験してみます。