如何设置大于 1096 像素的表单高度?
How to set form height larger than 1096 pixels?
我正在使用 C++ Builder XE7 并遇到一个奇怪的问题。我需要一个大约 1500 像素的表单高度。问题是对象检查器不允许我指定大于 1096 像素的值。如果我设置任何更大的值,它会自动设置为 1096.. 这个问题存在于任何现有的或新的表单上。我使用的是 Windows 7,屏幕分辨率为 1920x1080。
此行为的原因是当您没有为表单大小设置约束时,Delphi 将通过 WM_GETMINMAXINFO
message, which is fired when delphi sets the form size via the SetWindowPos
函数自动获得系统级别的约束。对于最大高度,Delphi 使用 ptMaxTrackSize.Y 成员,在我的 windows 8.1 系统(1920x1080 分辨率)上恰好是 1092。
所以如果你想强制表单高度高于系统桌面高度,你必须使用 Constraints.MaxHeight
来覆盖这个行为。您可以通过在 Vcl.Forms
单元的过程 TCustomForm.WMGetMinMaxInfo
中设置断点来检查这一点。
我正在使用 C++ Builder XE7 并遇到一个奇怪的问题。我需要一个大约 1500 像素的表单高度。问题是对象检查器不允许我指定大于 1096 像素的值。如果我设置任何更大的值,它会自动设置为 1096.. 这个问题存在于任何现有的或新的表单上。我使用的是 Windows 7,屏幕分辨率为 1920x1080。
此行为的原因是当您没有为表单大小设置约束时,Delphi 将通过 WM_GETMINMAXINFO
message, which is fired when delphi sets the form size via the SetWindowPos
函数自动获得系统级别的约束。对于最大高度,Delphi 使用 ptMaxTrackSize.Y 成员,在我的 windows 8.1 系统(1920x1080 分辨率)上恰好是 1092。
所以如果你想强制表单高度高于系统桌面高度,你必须使用 Constraints.MaxHeight
来覆盖这个行为。您可以通过在 Vcl.Forms
单元的过程 TCustomForm.WMGetMinMaxInfo
中设置断点来检查这一点。