1

Photoshop の画像をモデルにした非長方形のダイアログを作成しています (画像はダイアログの背景であり、ユーザーは画像の透明部分を通して見ることができます)。いくつかのカスタム描画コントロールを備えたメディア アプリのダッシュボード スタイルのウィンドウが好きです。ほとんどの背景画像は不透明または 100% 透明ですが、その間に部分的に透明なピクセルの薄い領域があり、画像を滑らかに背景に溶け込ませることができます。これは Web グラフィックではうまく機能しますが、これを Windows ウィンドウで機能させる方法が見つかりませんでした。私は Windows テンプレート ライブラリ (WTL)、msvc 2008 を使用しています。アプリは Windows XP だけでなく、Vista と Windows 7 でも実行する必要があります。

現在、背景画像の不透明な部分を使用して GDI クリッピング領域を作成しているだけですが、これはかなり粗いエッジになります。

これを達成するための API 関数 (WTL の一部、または WTL から到達可能) について知っている人はいますか?

4

3 に答える 3

0

この記事では、すべてのターゲットプラットフォームで使用可能なWTLおよびGdi+APIでレイヤードウィンドウを使用する方法を示します。

于 2010-05-19T23:57:24.397 に答える
0

これが WTL とどのように相互運用されるかはわかりませんが、AlphaBlend関数を見てください。部分的に透明なビットマップを DC に選択し、それをペイント関数でダイアログの DC にコピーする必要があります。

于 2010-05-19T16:39:54.420 に答える
0

おそらく、レイヤードウィンドウを使用できますか?これらを WTL でテストしたことはありませんが、必要な効果が得られるはずです。私の知る限りでは、レイヤード ウィンドウにコントロールを追加することはできないと思います。そのため、コントロールを使用するには別の (レイヤードでない) ウィンドウにアタッチする必要があります。

于 2010-05-19T18:42:11.363 に答える