私はWindows 7のタスクバーと同じ効果を得たいと思います。
私はこの質問を見てきました: Keep Window Looking Active
これは素晴らしいですが、ウィンドウにクライアント以外の領域がある場合にのみ有効です。どのようにAeroがアクティブであるかのように境界線のないウィンドウを描画するように強制できますか?
私のウィンドウはボーダーレスであり、その内容(黒い背景)は、私が何をしていても非アクティブであるためレンダリングされます。
ウィンドウフラグをWindows 7のタスクバーと同じように設定しましたが、それは役に立ちませんでした。
私の唯一の唯一の考えは、境界線を描いてクリップすることです。私が望むものを達成するためのよりよい方法はありますか?
EDIT 1:
クリッピングは、ウィンドウの内容が非アクティブウィンドウとして表示された境界線をクリッピングした後、動作しませんでした。 どのようにWindows 7のタスクバーが機能しますか?
EDIT2:
より良い自分自身を説明するためにいくつかの写真を追加するには、以下のウィンドウの内容は、黒の背景です。
:ウィンドウは、コンテンツが常に非アクティブウィンドウとして表示されて何のクライアント領域を持っていない場合は
:アクティブウィンドウだ
ウィンドウのタスクバーは常にアクティブウィンドウとしてレンダリングされ、NCエリアはありません(少なくともspy ++によると)。それが私が模倣しようとしていることです。
EDIT3:
最近のディスカッションを共有しています。 explorer.exeのメインウィンドウはフレームレスで、以下のフラグがあります
私は、エクスプローラのプロセスに潜っエクスポート機能をdwmapi.dll:
それは私が同じように、DwmEnableBlurBehindWindowを使用しています。
私は文書化されていない序数関数をチェックしましたが、それらのどれもアクティブなガラスをアクティブにすることには関係しません。
DWMルールはエクスプローラには適用されませんか?
どのようにボーダーレスウィンドウがアクティブで気づくのですか? – Dani
もっと明瞭になるように写真をいくつか追加しました。 – Omer
最後の段落で「ウィンドウにクライアント領域がない場合、コンテンツは常に非アクティブウィンドウとしてレンダリングされます」と書かれています。ボーダーレスウィンドウはアクティブでも無効なウィンドウのように見えます。 – Omer