比如一个子窗口在MDI的窗口中的移动范围如何限定。

解决方案 »

  1.   

    截获窗体移动的消息,在这个消息中判断子窗体的LEFT和TOP是否在指定区域中,如果是则inherted
      

  2.   

    procedure TForm1.FormMouseMove(Sender: TObject; Shift: TShiftState; X,
      Y: Integer);
    var
      frmRect:TRect;
    begin
        frmRect.Left:=Form1.Left;
        frmrect.Top:=Form1.Top;
        frmrect.Right:=Form1.clientWidth+Form1.Left;
        Frmrect.Bottom:=Form1.clientHeight+Form1.Top;
        ClipCursor(@frmRect);
    end;