WM_NCCALCSIZE, WM_NCPAINT don't fire in the Lazarus lazarus / 31-LCL ---------------------------------------------------------------------- dmitryb · 2014-05-19 09:01 Hi All How to create custom frame for control In Delphi I used WM_NCCALCSIZE to change frame size and WM_NCPAINT to draw the Frame Code: [Select]procedure TCustomDBAxisGridEh.WMNCCalcSize(var Message: TWMNCCalcSize); begin   inherited;   with Message.CalcSize_Params^ do   begin     if ebLeft in Border.EdgeBorders then       Inc(rgrc[0].Left, FBorderWidth);     if ebTop in Border.EdgeBorders then       Inc(rgrc[0].Top, FBorderWidth);     if ebRight in Border.EdgeBorders then       Dec(rgrc[0].Right, FBorderWidth);     if ebBottom in Border.EdgeBorders then       Dec(rgrc[0].Bottom, FBorderWidth);   end; end; procedure TCustomDBAxisGridEh.WMNCPaint(var Message: TWMNCPaint); begin   inherited;   DrawBorder; end; But in Lazarus its seems not fires. ---------------------------------------------------------------------- CCRDude · 2022-03-28 15:49 I know this is an old post, just wanted to add a solution for anyone stumbling across this post during a search. This forum post shows how to receive additional messages (on Windows)