由于设计需要,我把窗体的borderstyle属性设位bsnone,但又想随意拖动,因为没有了标题拦,所以我做了下面的函数,目的是让用户在窗体内拖动也如同拖动标题栏,但还是不行,请大侠指正!!
Procedure WMNCHitTest(Var M:TWNCHitTest);message WM_NCHitTest;procedure TForm1.WMNCHitTest(Var M:TWNCHitTest)
begin
  inherited;
  if M.Result=htClient then M.Result:=htCaption;end

解决方案 »

  1.   

    在Form1的“Private”部分声明过程:
    在private部分加入下列代码:
    procedure wmnchittest(var msg:twmnchittest);
    message wm_nchittest;
    在程序部分加入以下代码:
    procedure TForm1.wmnchittest(var msg:twmnchittest);
    begin
    inherited;
    if (htclient=msg.result) then msg.result:=htcaption;
    end;没错误的 ,确实可以拖动
      

  2.   

    是啊,上面还有Panel,那我该如何是好:<
      

  3.   

    ReleaseCapture
    SendMessage (想按住拖动的控件或窗体的句柄), WM_NCLBUTTONDOWN, HTCAPTION, 0写到想按住拖动的控件或窗体的ONMOUSEDOWN过程中就可以了。DELPHI的消息处理确实简单,但局限性也相对大了些。我还是喜欢用API。