我正在使用 WMSysCommand 消息来修改标题栏按钮(最大化/最小化)的行为,并且最近更新需要使用 WMNCHitTest,但由于代码冗长,我不想在乘法过程中拆分这两个相关消息。
我可以从其他消息中访问私人声明(消息)吗?如果我可以 - 怎么做?
procedure TForm1.WMNCHitTest(var Msg: TWMNCHitTest) ;
begin
SendMessage(Handle, HTCAPTION, WM_NCHitTest, 0); // or other wParam or lParam ????
end;
procedure TForm1.WMSysCommand;
begin
if (Msg.CmdType = SC_MAXIMIZE or 61488) or (Msg.Result = htCaption or 2) then // if command is Maximize or reciever message of Caption Bar click
begin
if CheckWin32Version(6, 0) then
Constraints.MaxHeight := 507
else
Constraints.MaxHeight := 499;
Constraints.MaxWidth := 0;
end
else if (Msg.CmdType = SC_MINIMIZE or 61472) or (Msg.Result = htCaption or 2) then // if command is Minimize
begin
if (EnsureRange(Width, 252, 510) >= (510 / 2)) then
PreviewOpn.Caption := '<'
else
PreviewOpn.Caption := '>';
end;
DefaultHandler(Msg); // reset Message handler to default ( Application )
end;
Soo ...我是正确地认为并且只是不知道正确的命令还是我在想完全胡说八道?
问候。谢谢你的帮助...