API - hint com sombra para XP

Top  Previous  Next

// hint com sombra - PARA XP SOMENTE

type 

  TXPHintWindow = class(THintWindow) 

  protected 

    procedure CreateParams(var Params: TCreateParams); override; 

    procedure WMNCPaint(var msg: TMessage); message WM_NCPAINT; 

  end

 

function IsWinXP: Boolean; 

begin 

  Result := (Win32Platform = VER_PLATFORM_WIN32_NT) and 

    (Win32MajorVersion >= 5and (Win32MinorVersion >= 1); 

end

 

procedure TXPHintWindow.CreateParams(var Params: TCreateParams); 

const 

  CS_DROPSHADOW = $00020000

begin 

  inherited; 

  if IsWinXP then 

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

end

 

procedure TXPHintWindow.WMNCPaint(var msg: TMessage); 

var 

  R: TRect; 

  DC: HDC; 

begin 

  DC := GetWindowDC(Handle); 

  try 

    R := Rect(00, Width, Height); 

    DrawEdge(DC, R, EDGE_ETCHED, BF_RECT or BF_MONO); 

  finally 

    ReleaseDC(Handle, DC); 

  end

end

 

initialization 

  HintWindowClass := TXPHintWindow; 

  Application.ShowHint := False; 

  Application.ShowHint := True; 

end