可能であれば、レイヤーウィンドウの後ろに対話型のコントロールがあるので、私はAlphaBlendの子フォームへの道を探しています。AlphaBlend子フォーム
問題は、複数のビジュアルレイヤー(図面、画像など)をペイントする通常のTFormのコンポーネントがあることです。ある時点で、このフォーム(その場で)のエディタコントロールをインスタンス化する必要があります。このコントロールは、コントロール(エディットボックス、チェックボックスなど)の外にさまざまな標準入力コントロールを含みますが、オーバーレイしたいレイヤーの前にあるレイヤーは、アルファブレンディングを使用して編集されます(また、クリックスルーにするにはWS_EX_TRANSPARENT
)。
私は最初にそのコンポーネントにボーダレスのTForm
という子フォームを使用すると考えていましたが、AlphaBlended TFormがアルファブレンドされていないポイントまでは問題なく機能しますが、親子化するとすぐに不透明になります...
それから、アルファベットのフォームを親にしないようにして、それをfsStayOnTopに設定し、関連するイベントに反応させて、スクリーン上のコンポーネントの前にそれを維持してください。しかし、それは本当に満足できるものではありませんソリューション:アルファブレンドされたStayOnTopフォームは、ユーザーがコンポーネントの前でそれらを移動することを決定した場合、アプリケーションのモーダルモードレスフォームの前にもあります。
したがって、子フォームをアルファベットにする方法に関する他のアイデア? (またはそれと同じように動作します)
ws_ex_Transparentスタイルでは、ウィンドウがマウスイベントの影響を受けません。そのスタイルは塗装順序にのみ影響します。マウスイベントを受信したくない場合は、SetWindowRgnを使用してウィンドウ内に「穴」を作成します。 –