Enable the drop shadow effect on a window (XP)

Author: Thomas Stutz 

 

{

  Question:

 

  I saw some applications that override the default window behaviour in that

  way that the window display a thin transparent shadow. How to do this?

 

  Answer:

 

  Override the CreateParams method of your form and add the

  CS_DROPSHADOW flag to the WindowClass.Style.

  

  CS_DROPSHADOW Enables the drop shadow effect on a window.

  The effect is turned on and off through SPI_SETDROPSHADOW.

  Typically, this is enabled for small, short-lived windows such as

  menus to emphasize their Z order relationship to other windows.

}

 

type

  TForm1 = class(TForm)

  protected

    procedure CreateParams(var Params: TCreateParams); override;

  end;

 

var

  Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

procedure TForm1.CreateParams(var Params: TCreateParams);

const

  CS_DROPSHADOW = $00020000;

begin

  inherited;

  Params.WindowClass.Style := Params.WindowClass.Style or CS_DROPSHADOW;

end;