鼠标左键在界面内任意处按下后可以移动窗体用响应WM_NCHITTEST来实现:
procedure TfrmMain.WMNCHitTest(var Msg: TWMNCHitTest);
begin
inherited;
if Msg.Result = htClient then
Msg.Result := htCaption;
end;
a.请问其中机理是什么?这样从TWMNCHitTest到Msg.Result?(50分)
b.如果我的form上有panel,如何让鼠标左键在panel上按下后也可以移动窗体?(50分)
procedure TfrmMain.WMNCHitTest(var Msg: TWMNCHitTest);
begin
inherited;
if Msg.Result = htClient then
Msg.Result := htCaption;
end;
a.请问其中机理是什么?这样从TWMNCHitTest到Msg.Result?(50分)
b.如果我的form上有panel,如何让鼠标左键在panel上按下后也可以移动窗体?(50分)
Shift: TShiftState; X, Y: Integer);
begin
ReleaseCapture;
Perform(WM_SYSCOMMAND, $F012, 0);
end;
Shift: TShiftState; X, Y: Integer);
begin
if Button=mbLeft then
begin
ReleaseCapture;
SendMessage(Handle,WM_SYSCOMMAND,$F012,0);
end;
end;
$f012,$f017都可以,可是在messages.pas,MSDN中都找不到对应的参数解释?