void __fastcall TForm1::FormCreate(TObject *Sender)
{
long lRt=GetWindowLong(Handle,GWL_EXSTYLE);
lRt=lRt|WS_EX_LAYERED;
SetWindowLong(Handle,GWL_EXSTYLE,lRt);
SetLayeredWindowAttributes(Handle,clBlue,200,LWA_ALPHA);
}
用SetWindowLong设置Form的属性是Layered Window,然后用
SetLayeredWindowAttributes(
HWND hwnd,
COLORREF crKey,
BYTE bAlpha,
DWORD dwFlags);
来设置透明效果,其中hwnd是窗口句柄(Form->Handle),crKey是透明的颜色,如果dwFlags包含了#define LWA_COLORKEY 0x00000001,就可以让crKey指定的颜色变成透明。bAlpha是Alpha半透明的百分比,dwFlags中包含#define LWA_ALPHA 0x00000002的话,就可以用它指定半透明效果,0=0%(全透明,隐藏) 255=100%(不透明)。
此外还可以用AnimateWindow让窗口淡入淡出。你可以去查最新的MSDN,或者直接看winuser.h的头文件里的函数定义,很简单的。(SetLayeredWindowAttribute在BCB的Win32API帮助里没有,因为那个帮助太老了)