我尝试使用以下技术来启用/禁用窗口的阴影效果:(CreateParams 当然被覆盖。TToolWindow 来自 TForm)。
procedure TToolWindow.CreateParams(var Params: TCreateParams);
var
LShadow: boolean;
begin
inherited;
if (Win32Platform = VER_PLATFORM_WIN32_NT)
and ((Win32MajorVersion > 5)
or ((Win32MajorVersion = 5) and (Win32MinorVersion >= 1))) then //Win XP or higher
if SystemParametersInfo(SPI_GETDROPSHADOW, 0, @LShadow, 0) then
begin
if LShadow and HasShadow then
Params.WindowClass.Style := Params.WindowClass.Style or CS_DROPSHADOW;
end;
end;
虽然这适用于 TToolWindow 类的第一个实例,但以下实例保留第一个实例的设置,而不管 HasShadow 的值(这是 TToolWindow 类的已发布属性)。
如何在不同的 TToolWindow 实例上有不同的阴影设置?
TIA