请参考这里的另一个问题:从远边不同的约束中调整无边框形式?
之前的问题已经解决,但我有另一个类似的问题.由于我正在构建具有不同客户区的自定义形状表单,因此我需要更改此表单的ClientRect区域.表格有一些特殊的曲线边缘等等,但那部分是无关紧要的.我需要更改表单的ClientRect以表示允许删除组件的新客户区域,并忽略放在这些边界之外的任何内容.
(我有一个无边框的形式,我正在绘制自己的边框,这个边框与标准的窗口边框大不相同.)
这个解决方案会改变我之前的问题的工作方式,但这将是另一个我敢肯定我会自己解决的话题,应该很简单.我只需要能够在第一时间正确设置它.
type
TForm1 = class(TForm)
..
private
procedure WmNCCalcSize(var Msg: TWMNCCalcSize); message WM_NCCALCSIZE;
..
..
procedure TForm1.WmNCCalcSize(var Msg: TWMNCCalcSize);
begin
inherited;
if Msg.CalcValidRects then begin
InflateRect(Msg.CalcSize_Params.rgrc[0], -10, -6);
Msg.Result := 0;
end;
end;
Run Code Online (Sandbox Code Playgroud)
请仔细阅读WM_NCCALCSIZE文档,包括备注部分NCCALCSIZE_PARAMS,因为我不确定这是你想要的.但这是你的信息..
| 归档时间: |
|
| 查看次数: |
2156 次 |
| 最近记录: |