下面以Button为例来实现
窗体半透明实现简单直接设置属性或者用api来设置层属性来实现,但一般控件设置层属性,却得不到半透明效果。实际上做一下小改动就可以了。
响应窗体的OnActivate事件,代码如下。
void __fastcall TForm1::FormActivate(TObject *Sender)
{
long wsex = ::GetWindowLongPtr(Handle, GWL_EXSTYLE );
wsex |= WS_EX_TOOLWINDOW ;
wsex &= ~WS_EX_APPWINDOW;
::SetWindowLongPtr(Button1->Handle, GWL_EXSTYLE, wsex );
::SetParent(Button1->Handle ,GetDesktopWindow());
SetWindowLong(Button1->Handle, GWL_EXSTYLE, GetWindowLong(Button1->Handle, GWL_EXSTYLE ) ^ WS_EX_LAYERED ^ WS_EX_TRANSPARENT );

本文通过示例详细介绍了在BCB中如何使Button控件实现半透明效果,包括设置窗体和控件的属性,处理WM_MOVE消息以解决控件随窗体移动的问题,并确保按钮仍然响应点击事件。

2917

被折叠的 条评论
为什么被折叠?



