窗口上有一个按钮和一个panel控件,panel控件颜色是红色的,按钮代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var
h: HWND;
FormStyle: Integer;
begin
h:=form1.Handle;
FormStyle := GetWindowLong(h, GWL_EXSTYLE);
SetWindowLong(h, GWL_EXSTYLE, FormStyle or WS_EX_LAYERED);
SetLayeredWindowAttributes(h, 0, 100, LWA_ALPHA);
end;
运行后,点击按钮,窗口按照ALPHA半透明,但是panel也相应的半透明了,有没有办法让窗口半透明,但是窗口中的panel不透明啊,
procedure TForm1.Button1Click(Sender: TObject);
var
h: HWND;
FormStyle: Integer;
begin
h:=form1.Handle;
FormStyle := GetWindowLong(h, GWL_EXSTYLE);
SetWindowLong(h, GWL_EXSTYLE, FormStyle or WS_EX_LAYERED);
SetLayeredWindowAttributes(h, 0, 100, LWA_ALPHA);
end;
运行后,点击按钮,窗口按照ALPHA半透明,但是panel也相应的半透明了,有没有办法让窗口半透明,但是窗口中的panel不透明啊,
解决方案 »
- adoquery Filter 问题
- Delphi中ADO操作数据,不想有数据可视化界面怎么办?(新手)
- 请问rdb 我怎么能把它的数据导向另一种数据库,或是直接向网站动态上发布呢,。我家有个电脑信息机,我想把它自动生成的rdb,动态地实时
- 如何将编好的程序变成EXE文件~~~或者其他可以脱离DELPHI的文件类型~~谢谢
- 编译通不过,错在哪里?
- ado无法连接远端SQL服务器
- 打开外部文件
- 只有.dcu文件,没有其对应的.pas文件,能否放进工程中编译?怎样做?
- 对一个VB程序员来说,学delphi难吗?
- 请问大家一个小问题,Delphi里面有继承吗?TImage从TControl继承的,可是我为什么不能用它的AdjustSize呢?
- 如何用TeeChart画出脂肪图的曲线拟合(正态分布图)
- 求助一个超难的条件选择语句
A.使用两个或多个窗口叠加,底层窗口使用Alpha效果,控件窗口不使用Alpha。
B.使用GDI/GDI+控制窗口绘制,在内存中绘制象素级带Alpha信息的图形后,再UpdateLayeredWindow到窗口
//窗体全透明,但窗体上的控件不透明
procedure TForm1.Button1Click(Sender: TObject);
Var
frmRegion, tempRegion: HRGN;
i: Integer;
Arect: TRect;
Begin
frmRegion := 0;
For I:= 0 To ControlCount - 1 Do Begin
aRect := Controls[i].BoundsRect;
OffsetRect( aRect, clientorigin.x - left, clientorigin.y - top );
tempRegion := CreateRectRgnIndirect( aRect );
If frmRegion = 0 Then
frmRegion := tempRegion
Else Begin
CombineRgn( frmRegion, frmRegion, tempRegion, RGN_OR );
DeleteObject( tempRegion );
End;
End;
tempregion :=
CreateRectRgn( 0, 0, Width,
GetSystemMetrics( SM_CYCAPTION )+
GetSystemMetrics( SM_CYSIZEFRAME )+
GetSystemMetrics( SM_CYMENU ) * Ord(Menu <> Nil)); CombineRgn( frmRegion, frmRegion, tempRegion, RGN_OR );
DeleteObject( tempRegion );
SetWindowRgn( handle, frmRegion, true );
End;