ウィンドウにフォーカスがあっても非表示にする方法はありますか?私は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. ビューが表示されているときにUITableViewが非アクティブになる
- 6. シミュレートは非表示ウィンドウに
- 7. ウィンドウのサイズ変更時にテキストが非表示になる
- 8. ポリマーが表示されていないときにページを非アクティブにする
- 9. アニメーションのUIButtonが非表示になり、非表示になる
- 10. ウィンドウを非表示にする方法
- 11. プッシュサービスがマップコンソールで非アクティブとして表示される
- 12. ShowCaseViewが触れても非表示にならない
- 13. アクティブなアイテムリストで非アクティブな選択アイテムを表示
- 14. 他のウィンドウがフォーカスしているときにポップアップコントロールを非表示にする
- 15. ウィンドウを非表示にしてアプリケーションを起動する
- 16. Python Tkinterキーボードショートカットを使用してウィンドウを非表示にする
- 17. すべての非表示/非表示のウィンドウを終了
- 18. UIScrollViewで非アクティブなページを一時的に非表示にする方法
- 19. jqueryアクティブなアコーディオンコンテンツを非表示にする
- 20. UIView:描画を非表示にしてもう一度表示
- 21. wxPythonウィンドウの表示/非表示時の意図しないウィンドウのサイズ変更
- 22. "非アクティブ"のNSPanel -Modeが常に正しいカーソルを表示しない
- 23. jquery pjax + jquery tipsyクリックした後にマウスが表示されてもツールヒントが非表示にならない
- 24. CSSアクティブな他のクラスに応じてクラス/ IDを非表示にする
- 25. SKStoreProductViewControllerを表示すると、非アクティブな制約が再アクティブ化されます。
- 26. ウィンドウを表示/非表示にする最善の方法
- 27. どのように表示/非表示にcmdのウィンドウ?
- 28. jQuery表示/非表示 - アクティブなクラスの追加/削除
- 29. * ngIfを使用してアクティブなvs非アクティブなフラグを処理してアングル2のAppで表示する
- 30. tkinterウィンドウに画像を追加しても画像が表示されない
私はVisualStudioのインテリセンスを模倣しようとしています。 Aは提案ウィンドウ、Bはユーザーがテキストを入力する場所です。ユーザーがA(選択した提案を変更するなど)をクリックすると、自動的にBにフォーカスが戻され、手動でフォーカスを戻さなくても入力を続けることができます。フォーカスの移動は次のようになります:フォーカスはBに設定され、ユーザーはマウスでAをクリックします。フォーカスをBに戻します。一時的にフォーカスを取得し、フォーカスを点滅(または点滅)させます。 。 –