フリーソフト

« [Delphi/BCB] manifestファイルをexeに埋め込む | トップページ | [BCB] ファイルのタイムスタンプ(更新日時など)を取得 »

[BCB] Formを半透明にする

Windows 2000以降でFormを半透明にする方法です。SetLayeredWindowAttributes関数の3番目の引数で透明度を指定します。0が完全に透明で255が不透明です。

void __fastcall TForm1::FormCreate(TObject *Sender)
{
  SetWindowLong(Handle, GWL_EXSTYLE,GetWindowLong(Handle, GWL_EXSTYLE) | WS_EX_LAYERED);
  SetLayeredWindowAttributes(Handle,0,200,LWA_ALPHA);
}

同じ関数を使って、ある色だけを透明にしたりもできます。以下の例は、Formの白色の部分を完全に透明にした上で、Formを半透明にしています。

void __fastcall TForm1::FormCreate(TObject *Sender)
{
  SetWindowLong(Handle, GWL_EXSTYLE,GetWindowLong(Handle, GWL_EXSTYLE) | WS_EX_LAYERED);
  SetLayeredWindowAttributes(Handle,clWhite,200,LWA_COLORKEY | LWA_ALPHA);

« [Delphi/BCB] manifestファイルをexeに埋め込む | トップページ | [BCB] ファイルのタイムスタンプ(更新日時など)を取得 »

C++Builder」カテゴリの記事

フォーム・ダイアログ関連」カテゴリの記事