admin

[界面效果] 窗体全透明,但窗体上的控件不透明

  1. //窗体全透明,但窗体上的控件不透明  

  2. procedure TForm1.Button1Click(Sender: TObject);  

  3.  Var  

  4.    frmRegion, tempRegion: HRGN;  

  5.    i: Integer;  

  6.    Arect: TRect;  

  7.  Begin  

  8.    frmRegion := 0;  

  9.    For I:= 0 To ControlCount - 1 Do Begin  

  10.      aRect := Controls[i].BoundsRect;  

  11.      OffsetRect( aRect, clientorigin.x - left, clientorigin.y - top );  

  12.      tempRegion := CreateRectRgnIndirect( aRect );  

  13.      If frmRegion = 0 Then  

  14.        frmRegion := tempRegion  

  15.      Else Begin  

  16.        CombineRgn( frmRegion, frmRegion, tempRegion, RGN_OR );  

  17.        DeleteObject( tempRegion );  

  18.      End;  

  19.    End;  

  20.    tempregion :=  

  21.      CreateRectRgn( 0, 0, Width,  

  22.                     GetSystemMetrics( SM_CYCAPTION )+  

  23.                     GetSystemMetrics( SM_CYSIZEFRAME )+  

  24.                     GetSystemMetrics( SM_CYMENU ) * Ord(Menu <> Nil));  

  25.    

  26.    CombineRgn( frmRegion, frmRegion, tempRegion, RGN_OR );  

  27.    DeleteObject( tempRegion );  

  28.    SetWindowRgn( handle, frmRegion, true );  

  29.  End;  

  30.    


#1楼
发帖时间:8月前   |   查看数:0   |   回复数:0
游客组