窗口设置为透明

 

  
  
  
  
  1. void __fastcall TForm1::FormCreate(TObject *Sender)   
  2. {  
  3.   long lRt=GetWindowLong(Handle,GWL_EXSTYLE);  
  4.   lRt=lRt|WS_EX_LAYERED;  
  5.   SetWindowLong(Handle,GWL_EXSTYLE,lRt);  
  6.   SetLayeredWindowAttributes(Handle,clBlue,200,LWA_ALPHA);  

用SetWindowLong设置Form的属性是Layered Window,然后用

  
  
  
  
  1. SetLayeredWindowAttributes(  
  2.     HWND hwnd,  
  3.     COLORREF crKey,  
  4.     BYTE bAlpha,  
  5.     DWORD dwFlags);  
  6.  

来设置透明效果,其中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帮助里没有,因为那个帮助太老了)

 


 

你可能感兴趣的:(窗口,职场,设置,休闲)