您的位置:首页 > 职场人生

窗口设置为透明

2005-03-12 22:26 323 查看
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帮助里没有,因为那个帮助太老了)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  职场 设置 窗口 休闲