我有一个无标题的窗口,可拖动,可任意调整大小,大家都知道任意拖动是procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
    ReleaseCapture;
    SendMessage(Handle, wm_SysCommand, $F012, 0); // 拖动窗体移动
end;下面是任意调整大小的代码,没有用那种改变风格的代码procedure TForm1.WMNchist(var Msg: TMessage);
const
   cOffset = 10;
var
   vPoint: TPoint;
   MouseX, MouseY: integer;begin
   inherited; //inherited就是调用祖先类的函数,如果不带参数就是默认调用同名函数
   MouseX := LOWORD(Msg.LParam);//鼠标X
   MouseY := HIWORD(Msg.LParam);//鼠标Y
   vPoint := ScreenToClient(Point(MouseX, MouseY));//屏幕转客户坐标
   if PtInRect(Rect(0, 0, cOffset, cOffset), vPoint) then
     Msg.Result := HTTOPLEFT  //在左上角
   else if PtInRect(Rect(Width - cOffset, Height - cOffset, Width, Height), vPoint) then
     Msg.Result := HTBOTTOMRIGHT //在边界右下脚
   else if PtInRect(Rect(Width - cOffset, 0, Width, cOffset), vPoint) then
     Msg.Result := HTTOPRIGHT//在右上角
   else if PtInRect(Rect(0, Height - cOffset, cOffset, Height), vPoint) then
     Msg.Result := HTBOTTOMLEFT // //在边界左下脚
   else if PtInRect(Rect(cOffset, 0, Width - cOffset, cOffset), vPoint) then
     Msg.Result := HTTOP //在上边界
   else if PtInRect(Rect(0, cOffset, cOffset, Height - cOffset), vPoint) then
     Msg.Result := HTLEFT//在左边界
   else if PtInRect(Rect(Width - cOffset, cOffset, Width, Height - cOffset), vPoint) then
     Msg.Result := HTRIGHT //在右边界
   else if PtInRect(Rect(cOffset, Height - cOffset, Width - cOffset, Height), vPoint) then
     Msg.Result := HTBOTTOM;//在一个窗口下面的水平边界上end;/////////////////////////////////////////////////////////////////////////////////////////////////////////////
{WM_NCHITTEST消息说明
该消息用来描述,当关标移动或当按下或当释放了鼠标按扭的时候,
就会发送一个WM_NCHITTEST消息给一个窗口若鼠标未被捕获,
则这条消息发送给光标所在的窗口。
否则,这条消息公布给捕获鼠标的窗口。参数
   xPos = LOWORD(Lparam);//LParam低位字的值。
   指出光标的X坐标。该坐标值是相对于屏幕左上角的坐标。   yPos = HIWORD(LParam);//LParam高位字的值。指出光标的y坐标。返回值  DefWindowProc函数的返回值是下列值之一,以指示光标热点的位置

    HTBORDER               光标热点在一个窗口的边界上,该窗口不具有可变大小的边界
    HBOTTOM                在一个窗口下面的水平边界上
    HBOTTOMLEFT            在一个窗口的边界的左下角
    HBOTTOMRIGHT           在边界右下脚
    HTCAPTION              在标题栏中
    HTCLIENT               在客户区
    HTERROR                在屏幕北京或窗口之间的分界线上(与HTNOWHERE类似,
                               所不同的是DefWindowProc函数产生一个系统响铃以指示出错)
    HTGROWBOX              在尺寸框中(与HTSIZE相同)
    HTHSCROLL              在水平滚动栏
    HTLEFT                 在左边界
    HTMENU                 在菜单中
    HTNOWHERE              在屏幕或窗口之间的分界线上
    HTREDUCE               在一个最小化的按扭上
    HTRIGHT                在窗口右边界
    HTSIZE                 在尺寸框中
    HTSYSMENU              在一个System菜单或在一个子窗口的Close按扭中
    HTTOP                  在上边界
    HTTOPLEFT              在左上角
    HTTOPRIGHT             在右上角
    HTTRANSPARENT          在当前被其他窗口覆盖的窗口中
    HTVSCROLL              在垂直滚动栏中
    HTZOOM                 在最大化按扭上}
/////////////////////////////////////////////////////////////////////////////////////////////////////以上是在事先建好的窗口上一切正常的,我现在要求是要动态创建的窗口,有这两个功能,经过试验
 动态窗口.FormMouseDown=Form1.FormMouseDown,就可以移动窗口了,那么问题来了:
 WMNchist 这个事件是自定义事件,本身窗体自带的事件是不存的,那么上面代码中的方法自然不可用,现在抓瞎了,不知道如何让这个动态窗口去执行上面的这个消息拦截事件