0

アプリケーションにフォーカスがないときに wxWidgets アプリケーションが新しいウィンドウを作成すると、次に示すように、そのアプリケーションに切り替えるまでタスクバー アイコンが黄色に点滅します。

ここに画像の説明を入力

これは面倒です。どうすればこれを防ぐことができますか?

編集: この質問の元のバージョンは、起動中に点滅が発生していることを示唆していました。さらに調査した結果、これはアプリケーションの起動時に発生していません。むしろ、アプリケーションにフォーカスがないときに追加のウィンドウを作成すると発生します。

もう少し背景を説明すると、私のアプリケーションは一種のサーバーであり、ネットワーク イベントに応答してウィンドウが開きます。アプリケーションを起動し、フォーカスを別のものに切り替え、フォーカスが別の場所にあるときにネットワーク イベントが発生すると、アプリケーションはバックグラウンドで (フォーカスを取得せずに) 新しいウィンドウを開き、この点滅が発生します。

ウィンドウはwxFrames です。Show(true)アプリケーションはそれらとその子ウィジェットを構築し、フレームを呼び出します。

FlashWindowまた、 Win32 API 関数にブレークポイントを設定しようとしました。WX 内のどこで呼び出されてもトラップすることを望んでいましたが、それを機能させることができませんでした。

4

2 に答える 2

3

たぶん、以下がうまくいくでしょう:

wxTopLevelWindow::ShowWithoutActivating ( )

http://docs.wxwidgets.org/trunk/classwx_top_level_window.html#a03e526f505716568318d601318527bd0

于 2013-03-12T13:39:50.537 に答える
1

はい。アプリにフォーカスがないときに新しいトップ レベル ウィンドウを作成すると、タスク バーのアイコンが点滅します。これは、Windows オペレーティング システムの意図した動作です。

于 2013-03-11T20:00:57.607 に答える