VCL 中的 Windows API 函数(4): AdjustWindowRectEx    

AdjustWindowRectEx 用在了 Forms、DBCtrls 单元.

AdjustWindowRectEx 可以根据窗口样式获取的边缘尺寸.



测试:


var
  R: TRect;
begin
  SetRect(R, 0, 0, 0, 0); {此矩形不是全局变量, 需要初始为空}
  AdjustWindowRectEx(R,                                 {矩形结构承载返回值}
                     GetWindowLong(Handle, GWL_STYLE),  {窗口样式}
                     False,                             {有无菜单}
                     GetWindowLong(Handle, GWL_EXSTYLE) {窗口扩展样式}
                     );

  ShowMessageFmt('%d,%d,%d,%d',[R.Left, R.Top, R.Right, R.Bottom]);

  {结果是: -4,-30,4,4}
  {说明窗口变宽是 4, 标题栏高度是 30}

  {如果指定为有菜单; 结果是: -4,-50,4,4; 说明菜单高度是 20}
end;