ダイアログの最前面表示時の後ろの画面の操作 – プログラミング – Home

ダイアログの最前面表示時の後ろの画面の...
 
通知
すべてクリア

ダイアログの最前面表示時の後ろの画面の操作


藤本
 藤本
(@藤本)
ゲスト
結合: 19年前
投稿: 2
Topic starter  

はじめまして。
お世話になります。
開発環境:WindowsXP VC++6.0 MFC使用

ダイアログベースで画面を作成(A.exe CDialogベース)し、その画面でボタンを押下し
子画面(A_Child)を表示させます。表示方法はDoModal()で。
そのA_ChildはCDialogベースです。

A_Childダイアログが表示されている間(最前面)は、デスクトップ上の操作を
何も出来ない様にしたいのですが、方法はありますでしょうか?
(例:スタート→ログオフでダイアログが表示しますよね。
その時ってそのダイアログ以外は触れないですよね。)

せめて、自分たちが作成したアプリだけでも操作不可能にしたいのです。
SetWindowPos()、ModifyStyle()、色々試しましたが上手くいきません。
DoModalで表示させるのがそもそもまちがいののでしょうか?

何か方法が有りましたらよろしくお願いします。

説明が下手ですみません。


引用解決済
トピックタグ
ドルドル
 ドルドル
(@ドルドル)
ゲスト
結合: 19年前
投稿: 96
 

藤本さんへ

>A_Childダイアログが表示されている間(最前面)は、デスクトップ上の操作を
>何も出来ない様にしたいのですが、方法はありますでしょうか?
> (例:スタート→ログオフでダイアログが表示しますよね。
> その時ってそのダイアログ以外は触れないですよね。)
 マウスとキーボードを両方ともグローバルフックすればできると思います。
 SetWindowHookEx()を調べてみましょう。。

>自分たちが作成したアプリだけでも操作不可能にしたいのです
 i ) マウスとキーボードを両方ともローカルフック(たぶんこっちのほうが簡単で
安全性は高いかと)
ii) すべてのコントロールのEnableをfalse にすればいけるかと(少し考えているの
とは違うかもしれないけど)

でも操作不可能にしたらどうやって復帰するのかな・・・・・??


返信引用
Multi Posting
 Multi Posting
(@Multi Posting)
ゲスト
結合: 19年前
投稿: 15
 

http://m--takahashi.com/cgi.cgi?13927

> 発言される前に「使用上の注意」を必ずお読み下さい。

> ■ マルチポストについて
>
> マルチポストとは、「同じ内容の質問などを複数の掲示板等に書き込むこと」です。
> この行為はマナー違反として嫌われています。マルチポストは行わないで下さい。
>
>
> 誤ってマルチポストしてしまった場合には、必ず全ての掲示板にどのように
> 解決したかを記述し、かつお礼を書き込んで下さい。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

タイトルバーのないウィンドウを画面いっぱいに作成して、最前面表示しておくとか。
直前に画面全体のスクリーンショットを取っておけば、ログオフダイアログっぽくなる
のではないでしょうか。


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

> せめて、自分たちが作成したアプリだけでも操作不可能にしたいのです。

DoModal() で表示したなら、A_Child 表示中は A は操作不可能になると
思うのですが、そうならないのでしょうか?


返信引用
とくめいきぼう
 とくめいきぼう
(@とくめいきぼう)
ゲスト
結合: 19年前
投稿: 1
 

教えて!goo にも・・・

http://oshiete1.goo.ne.jp/kotaeru.php3?q=2074165

藤本さん、よその掲示板にもまったく同じ質問をすることを
マルチポストといいます。
これは質問に答える側としてはかなり気分を害する行為なので、
やめたほうがいいですよ。


返信引用
藤本
 藤本
(@藤本)
ゲスト
結合: 19年前
投稿: 2
Topic starter  

マナー違反をして大変申し訳ございませんでした。
以後、きおつけます。

すみませんでした。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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