-1

画面上に透明なウィンドウを重ねるアプリケーションを作成しました。透明なウィンドウはWS_EX_LAYERED、それにスタイルを適用し、呼び出して作成されます。SetLayeredWindowAttributes( hWnd, RGB(0,0,255), 127, LWA_ALPHA );

この透明なウィンドウがビデオを再生する Media Player の上にあると、透明な領域が単に灰色になり、透けて見えなくなるという問題が発生しました。

何故ですか?また、透明なウィンドウを通して Media Player のコンテンツを表示するにはどうすればよいですか?

4

1 に答える 1

1

以下についてはよくわかりませんが、私の知識に基づいていると思われるものです。

通常、オーバーレイ サーフェスは、ハードウェア アクセラレーションの目的でビデオを再生する長方形の領域に作成され、ビデオ カードがそれを制御します (まあ、directx のような API を介したアプリケーションがそれを制御します)。

オーバーレイ サーフェスは、アプリケーションによって通常は黒くペイントされる gdi/window サーフェスと呼びましょう。

そのため、背景に黒/グレーが表示されます。

于 2013-08-11T00:51:42.887 に答える