6

指定した背景色で縁なしウィンドウを作成する必要があります。非クライアント領域を削除して次のようなものを取得する方法を知っています:

ここに画像の説明を入力

かっこいいけど、本当に欲しいものじゃない。エアロ ウィンドウをよく見ると、その周りに影があります (実際、これは影ではなく、輝きです)。このコードを使用して影を追加できる場所を見つけました:

const MARGINS shadow_on = { 1, 1, 1, 1 };
DwmExtendFrameIntoClientArea(hwnd, &shadow_on);

それはほとんど仕事をしています(これは私にはまったく明らかではないと思いました-ドキュメントはシャドウとこの機能の関係について何も述べていません)。ほとんど。ウィンドウの周りに細い枠が現れました。半透明のように見え、ウィンドウのルック アンド フィールが損なわれます。

ここに画像の説明を入力

私はそれが可能であることを知っています - ビジュアルスタジオはこの境界線の色を何らかの形で変更することさえあります!

更新: コメントで IInspectable が気付いたように、 で負のマージンを使用できますDwmExtendFrameIntoClientArea()。-1 値を設定すると、次の結果が得られました。

ここに画像の説明を入力

ご覧のとおり、さらに奇妙です。背景を色で塗りつぶそうとしましたが、うまくいきませんでした。

4

1 に答える 1