作成したフォームを半透明にするのであればOpacityプロパティを使えばできます。

では他のウィンドウを半透明にすることはできるのでしょうか? API関数を使えば可能です。

ただこの関数をそのまま実行してもうまくいきません。この関数を使うためには拡張ウィンドウスタイルにWS_EX_LAYEREDが追加されていなければなりません。そこで最初に拡張ウィンドウスタイルにWS_EX_LAYEREDを追加します。

これでSetOpacityメソッドを実行すればフォームを半透明にすることができます。

では他のアプリケーションのウィンドウを半透明にすることはできるのでしょうか?

Targetと書かれている部分(label1)を半透明にしたいウィンドウにドラッグすると、ドロップされたウィンドウを半透明にすることができます。

label1でマウスがクリックされたらマウスキャプチャします。マウスキャプチャされているのでフォームの外側でもマウスの動きを追跡することができます。

そしてマウスが離されたらその座標を調べます。その座標のウィンドウハンドルを調べてSetOpacityメソッドを実行します。

他のアプリケーションのウィンドウを半透明にした場合、元に戻すための手段を用意しなければなりません。そこでウィンドウを半透明にしたらそのウィンドウハンドルを保存しておき、必要なときに元に戻せるようにしておきます。