ウィンドウにフォーカスがあっても非表示にする方法はありますか?私は2つの形式(AとB)を持っています。ユーザーがAとやりとりした後、フォーカスをBに戻します。フォーカス転送の結果(ユーザーがAをクリックしてからフォーカスがBに戻されます)は、フォームAがアクティブから非アクティブに点滅することです。これは醜いように見えます(特にAが一時的に大きな影を持つVistaの場合)。この点滅が起こらないように、私はどのようにAが非アクティブに見えるようにすることができますか?アクティブにしてもウィンドウが非表示になる
答えて
最後に、私は答えを見つけました!
警告:この回答の技術を悪用しないでください。これを行うと、ユーザーが混乱し、一般的なコンピューティングエクスペリエンスに害を及ぼします。下記のテクニックは、特定の状況(例えば、IntelliSenseのような動作を実装するなど)で非常に便利ですが、をにしてください。
WM_NCACTIVATEメッセージは、非クライアント領域(つまり、境界線とタイトルバー)の状態を非アクティブまたはアクティブに変更するためにウィンドウに送信されます。メッセージのwParamは、状態が非アクティブかアクティブかを示します。 wParamがtrue(1の値)の場合、ウィンドウはアクティブに見えます。 wParamがfalse(値が0)の場合、ウィンドウは非アクティブに見えます。ウインドウを非アクティブまたはアクティブのままにするには、wParamを対応する値(0または1)に設定してオーバーライドすると、すべて設定されます。
private const int WM_NCACTIVATE = 0x0086;
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_NCACTIVATE)
{
// Use this to make it always look inactive:
m.WParam = (IntPtr)0;
// Alternately, use this to make it always look active:
m.WParam = (IntPtr)1;
}
base.WndProc(ref m);
}
あなたはguiモデルのデフォルトの動作を変更することを話しています。私はそうするように勧めません。ユーザーがA上で何かをしている場合、Bに戻るとAは消えてはいけませんか?なぜそれは '点滅'ですか?フォーカスの変更が発生した場合は、1つのスイッチにする必要があります。
フォーカスのようなスイッチングしているあなたが記述するものから言うことができませんでした:
A-> B
B-> A->ユーザークリック - > B
B->
?
これが役立つかどうかはわかりませんが、Winformsは所有フォームの概念をサポートしています。たとえば、フローティングツールバーはトップレベルウィンドウの外にあっても、トップレベルウィンドウがアクティブな場合でもアクティブなままです(逆も同様です)。同様に、フォームBを無効にしなくても、ユーザーはフォームAと対話できます。
これを達成するには、a
を表示する直前にb.AddOwnedForm(a)
に電話する必要があるようです。
私はあなたの提案を試みましたが、残念ながら、所有されたウィンドウと親ウィンドウとの間の切り替えが、依然としてウィンドウの表示を非アクティブからアクティブに変えます。 –
- 1. モーダルダイアログがアクティブな間にメインMFCウィンドウを非表示にしますか?
- 2. Qt:選択したテキストを非アクティブなウィンドウに表示するには
- 3. WPF - タスクマネージャで非表示になっているがアクティブなアプリケーションを表示
- 4. シミュレートは非表示ウィンドウに
- 5. アニメーションのUIButtonが非表示になり、非表示になる
- 6. アクティブなアイテムリストで非アクティブな選択アイテムを表示
- 7. ウィンドウを非表示にする方法
- 8. UIView:描画を非表示にしてもう一度表示
- 9. 他のウィンドウがフォーカスしているときにポップアップコントロールを非表示にする
- 10. "非アクティブ"のNSPanel -Modeが常に正しいカーソルを表示しない
- 11. jquery pjax + jquery tipsyクリックした後にマウスが表示されてもツールヒントが非表示にならない
- 12. ウィンドウを表示/非表示にする最善の方法
- 13. どのように表示/非表示にcmdのウィンドウ?
- 14. 異なるスクロールビューを非表示にして表示する
- 15. VIMバッファ/ウィンドウ非表示
- 16. キーボードがウィンドウの読み込み時に非表示にならない
- 17. ウィンドウを移動するときにイベントをアクティブ/非アクティブにする
- 18. どのように表示&MATLAB GUIのウィンドウを非表示にするには?
- 19. iFrameスクロールバーを非表示にしてもマウスホイールでスクロールできる
- 20. カメラプレビューを非表示にしてもプレビューコールバックを受け取る
- 21. Win32:非表示にした後にウィンドウを表示できませんか?
- 22. ぼかし効果によるWPFウィンドウの表示/非表示方法
- 23. iisを実行してもウィンドウにエラーが表示されるxp
- 24. MessageBoxが表示されずに非表示になる
- 25. ナビゲーションコントローラのツールバーが非表示になっていると非表示になっていませんか?
- 26. いくつかのキーをPythonで非アクティブなウィンドウに送信
- 27. vimは非アクティブなウィンドウを上下にスクロールできますか?
- 28. HTML5ビデオ:ネイティブのものが再アクティブ化されたときにカスタムコントロールを非表示にする
- 29. JFrameメニューが非表示になる
- 30. パネルを非表示にして表示しても、テキストボックスの値が失われる
私はVisualStudioのインテリセンスを模倣しようとしています。 Aは提案ウィンドウ、Bはユーザーがテキストを入力する場所です。ユーザーがA(選択した提案を変更するなど)をクリックすると、自動的にBにフォーカスが戻され、手動でフォーカスを戻さなくても入力を続けることができます。フォーカスの移動は次のようになります:フォーカスはBに設定され、ユーザーはマウスでAをクリックします。フォーカスをBに戻します。一時的にフォーカスを取得し、フォーカスを点滅(または点滅)させます。 。 –