No.4ベストアンサー
- 回答日時:
解決されたということなので、一応、参考までに
>・子画面のClassWizardには、WM_NCACTIVATEメッセージは存在しないため、
クラスで使用可能なメッセージ用フィルタをウィンドウに変更すれば出てきますよ。
>子画面で、WM_NCACTIVATEメッセージ受信時の処理を
>追加し、アクティブでなくなった時に、
>アクティブに変更するよう、以下の対応を行いました。
確かに親をアクティブにしようとしたときの点滅はなくなりますが、
他のアプリがアクティブになったときでも
モーダルウィンドウがアクティブの色のままになりません?
No.3
- 回答日時:
どうも、内部的にはFlashWindowExが呼び出されてる感じですね。
このときにも0x0118がきてますし。
なんで、このメッセージをどうにかして対処するというのは無理そうですね。
プログラム的に何とかするには、モーダルウィンドウが
表示されている間にロックされているウィンドウが
クリックされたら、そのマウスメッセージを破棄する
しかなさげですねぇ。
FlashWindowExをコールさせないようにということで。
この回答への補足
自己レスです。
以下の方法で、ほぼ、点滅は、なくなりました。
子画面で、WM_NCACTIVATEメッセージ受信時の処理を
追加し、アクティブでなくなった時に、
アクティブに変更するよう、以下の対応を行いました。
・子画面のClassWizardには、WM_NCACTIVATEメッセージは存在しないため、
手動で、OnNcActivate関数を追加しました。
参考:http://www5d.biglobe.ne.jp/~satis/document/MFC10 …
・子画面のOnNcActivate内にて、
アクティブでなくなった時に、自分自身へ
PostMessage( WM_NCACTIVATE, TRUE, 0 );
を送信しました。(以下、参照)
> BOOL C子画面Dlog::OnNcActivate(BOOL bActive)
> {
> if ( !bActive ) {
> PostMessage( WM_NCACTIVATE, TRUE, 0 );
> }
>
> return CDialog::OnNcActivate(bActive);
> }
早いマシンだと、ちらつきが発生しますが、
グレーの表示が見えるほどには、なりません。
上記、対応で解決しました(?)
ありがとう、ございます。
No.2
- 回答日時:
>問題のタイミングで、メッセージ0x118(意味不明)が
>届いています。
ほー、そうなんですか。
>1度、このメッセージの時に、
>return FALSE;
>で強制終了させたところ、
>タイトルバーが灰色になったままで、
>青色に戻りませんでした。
これはどういうコードを書かれたんですか?
CWnd::Default()をオーバーライドしたんですか?
調査された結果から考えると、PreTranslateMessageで
該当メッセージのときにTRUEを返せばいいように思いますが、どうでしょう?
この回答への補足
>>1度、このメッセージの時に、
>>return FALSE;
>>で強制終了させたところ、
>>タイトルバーが灰色になったままで、
>>青色に戻りませんでした。
>
>これはどういうコードを書かれたんですか?
>CWnd::Default()をオーバーライドしたんですか?
PreTranslateMessageにて
if (pMsg->message == 0x118)
return FALSE;
を追加しました。
>調査された結果から考えると、
>PreTranslateMessageで
>該当メッセージのときにTRUEを返せばいいように思い
>ますが、どうでしょう?
やってみました。
結果としては、クリック毎に、灰色と青色の
繰り返しになりました。
No.1
- 回答日時:
Windows2000以降のOSの仕様じゃないんですかねぇ?
もしかしたら、レジストリいじったりすれば平気かもしれませんが。
この回答への補足
どうしても、プログラムとして対応したいのです。
調査しましたが、
CWnd::PreTranslateMessage には、
問題のタイミングで、メッセージ0x118(意味不明)が
届いています。
1度、このメッセージの時に、
return FALSE;
で強制終了させたところ、
タイトルバーが灰色になったままで、
青色に戻りませんでした。
何か、ご存知の方は、いらっしゃらないでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- テレビ テレビの基本操作について。 3 2022/09/11 11:26
- Windows 10 Windows 10でBIOS画面が表示されなくなった 9 2022/06/26 08:13
- ノートパソコン surface go3 電源を入れた初期画面でサインインをクリックしてパスワードを求められますが、パ 1 2022/10/09 22:17
- Windows 10 CHOMEの画面が黒から灰色に変わって戻せない 1 2022/05/21 15:47
- その他(OS) Mac OSの操作について 2 2022/06/08 09:19
- Windows 10 Microsoftアカウントでログインできなくなった場合の対処を教えてください 1 2023/03/03 15:45
- その他(ブラウザ) エッジのスタート画面について 2 2022/08/17 11:12
- iPhone(アイフォーン) スタート画面に+メッセージ(SMS)「+メッセージ(プラスメッ」と表示 スタート画面では消せません。 2 2023/08/12 21:18
- その他(動画サービス) Tver アンケートに回答しても視聴できない(何度もアンケート画面が開く) 1 2023/01/13 21:47
- ビデオカード・サウンドカード EAのゲームで画面が点滅する 4 2023/01/11 18:50
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Java-jspの画面入力値保持について
-
三菱GOTの画面切り替えについて
-
ServletからServletへの値渡し
-
C言語で今まで表示していた画面...
-
遷移元を判定したい!
-
C# ログイン画面からメイン画面...
-
Strutsの情報保持の仕方について
-
Javascriptのhistory.back()が...
-
window.openした孫画面でSessio...
-
【JSP】input typeで入力された...
-
JavaScriptでページが更新され...
-
ASP.NET 画面遷移前の状態を保...
-
リンク先として、ページの途中...
-
HTTPステータスコードを取得(VB...
-
セッション切れでのリクエスト...
-
非アクティブな画面を操作する...
-
ASP.NETでファイルをアップロー...
-
SessionとViewStateについて
-
JAVAのセッション変数の上書き...
-
サーブレットによるpostデータ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Java-jspの画面入力値保持について
-
三菱GOTの画面切り替えについて
-
C言語で今まで表示していた画面...
-
ServletからServletへの値渡し
-
プログラミングで例えばゲーム...
-
C# ログイン画面からメイン画面...
-
遷移元を判定したい!
-
ASP.NET 画面遷移前の状態を保...
-
画面を隠す・消す方法を教えて...
-
ブラウザアドレスバーからのURL...
-
FormのsubmitでFormの内容がnull
-
ServletからHTMLページへの遷移...
-
Javaプログラミングの質問にな...
-
画像の縦横比固定の計算方法。
-
JAVAのセッション変数の上書き...
-
登録後、呼び出し元ページに戻...
-
Wi-Fiのパスワードが指定なしと...
-
system("cls")について
-
Beautiful Soupのインストール...
-
アドレスバーに引数を表示させ...
おすすめ情報