私は VB6 MDI アプリケーションを使用しており、ユーザーは接続先のデータベース (「アーカイブ」または「ライブ」など) を選択できます。ユーザーが「アーカイブ」データベースにアクセスしているときに、これを目立つように表示したいと思います。フォーム全体の透かしとして理想的です。すべてのコントロールは引き続き表示され、正しく機能します。印刷画面を使用するときに、この透かしを保持する必要があります。実際、印刷画面だけに透かしを入れるソリューションは問題ありません。
また、MDI 親フォームに実装できるソリューションを好むので、個々の子フォームをすべて変更する必要はありません。
これまでのところ、私は試しました。
MDI の親の背景に透かしを追加し、MDI の子を半透明にします。残念ながら、MDI 子フォームを透明にすることはできないようです。MDI アプリケーション全体 (親と子) が透明になります。
MDI アプリケーションを透過的にしてから、MDI 親フォームの後ろに透かしのある非子フォームを追加します (このフォームは MDI 親に合わせて移動およびサイズ変更されます)。少しかすれているように見えますが、Alt-PrintScreen は MDI ウィンドウのみをキャプチャするため、透かし効果はキャプチャされません。プリントスクリーンは大丈夫です。そのため、キーボード フックを追加して Alt-Printscreen を無効にすることを検討できます。
キーボード フックを追加して PrintScreen キーの押下をトラップし、MDI アプリケーション上に透かし付きの透明なフォームを表示します。2 と同様に、Alt-PrintScreen は MDI フォームのみをキャプチャし、透かし効果は表示しません。また、このソリューションは、印刷画面出力に透かしを入れるだけです。
MDI フォームに背景画像を追加します。これは他のコントロールからは見えず、フレームの多いフォームでは透かしが目立たなくなります。
フォーム ウィンドウに透かしのグラフィックを表示する適切な方法はありますか? 他のコントロールの上に透明な画像ボックスを配置しても、これらのコントロールは正しく機能しますか?
すべてのアドバイスに感謝します。
ありがとう