2

TWinControlベースのコントロールの不透明度をどのように変更できますか?そして、なぜ彼らはこの機能をTControl / TWinControlレベルに追加しなかったのですか(なぜTFormのみ)?

4

2 に答える 2

5

ウィンドウの不透明度の制御は、レイヤードウィンドウと呼ばれる機能によって提供されます。この機能の詳細については、MSDNをご覧くださいこの機能は、トップレベルのウィンドウでのみ使用できます。私の知る限り、Desktop Window Manager(Vistaの「ガラス」効果)もトップレベルのウィンドウでのみ使用できます。

子ウィンドウで使用できる代替方法は、ウィンドウ領域を使用してウィンドウの特定の領域を完全に透明としてマークするか、ビットマップアルファブレンディングを使用してコントロール全体を自分で描画することです。

于 2009-10-28T13:35:12.600 に答える
5

ラースに感謝します。

私はあなたがそれをする方法ではありません。私が理解しているように、WindowsはWindowsに半透明性を追加しただけです。そのため、TFormはそれを処理できますが、個々のコントロールは処理できません。ほとんどのVCLはWindows共通コントロールの単なるラッパーであるため、Windowsがそれを行わない場合、関連するVCLコントロールもそうすることはめったにありません。サードパーティのコンポーネントは、多くの場合、基本的な機能を拡張します。

于 2009-10-28T10:44:58.913 に答える