移动没有标题栏的窗体,上面有VCL控件。在Delphi开发指南上找到的unit MainFrm;interfaceuses
  SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;type
  TMainForm = class(TForm)
    btnClose: TButton;
    Memo1: TMemo;
    procedure btnCloseClick(Sender: TObject);
  private
    { Private declarations }
  protected
    // Capture the WM_NCHITTEST message to enable moving the form. 
    procedure WMNCHitTest(var Message: TWMNCHitTest);  message WM_NCHITTEST;
  public
    { Public declarations }
    procedure CreateParams(var Params: TCreateParams); override;
  end;var
  MainForm: TMainForm;implementation{$R *.DFM}procedure TMainForm.WMNCHitTest(var Message: TWMNCHitTest);
begin
  inherited;
  Message.Result := HTCAPTION;
end;procedure TMainForm.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  Params.Style := WS_THICKFRAME or WS_POPUP or WS_BORDER;
end;procedure TMainForm.btnCloseClick(Sender: TObject);
begin
  Close;
end;end.

解决方案 »

  1.   

    任务栏的东西好象ms没有公开哦。单单一个设为autohide都没办法通过程序做到。
    不过,能否通过监视desktop窗口的变化来达到同样的目的呢?
    hw:=GetDesktopWindow;
    .......
      

  2.   

    不是,任务兰改变的时候,有一个Workarea改变通知消息,你这样做:
    把下面的放倒你的窗体里面:
    procedure wmsettingchange(var msg:TMessage);message wm_SETTINGCHANGE;...
    begin
      if msg.lParam=1244276 then
        showMessage('任务兰改变了!');
    end;
    ////我先有了这个之后,其他的就不用我说了。
      

  3.   

    //....
      private
        procedure WMSETTINGCHANGE(var Msg: TWMSETTINGCHANGE); message WM_SETTINGCHANGE;
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.WMSETTINGCHANGE(var Msg: TWMSETTINGCHANGE);
    begin
      with Memo1.Lines do begin
        Values['Msg.Msg'] := IntToStr(Msg.Msg);
        Values['Msg.Flag'] := IntToStr(Msg.Flag);
        Values['Msg.Section'] := Msg.Section;
        Values['Time'] := TimeToStr(Now);
      end;
    end;//....
    测试成功
    谢谢Kingron
    你在什么地方找到的?
      

  4.   

    没有,自己写代码测试的........查了msdn没有在找到,所以你可以看到那个常量是一个数值。:)
      

  5.   

    我记得有一个Work Area,因此,你可以利用MSDN的全文检索功能~~~~~~~~~~~~
      

  6.   

    了不起,收藏先!
    不过kingron怎么又开始“沉沦”了呢??……
      

  7.   

    procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;
      var Handled: Boolean);
    begin
      //我是在这里,可没有捕获到
    end;
      

  8.   

    窗体上有控件:
    procedure TForm1.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      SetCaptureControl(nil);
    0A  SendMessage(Handle,WM_NCLBUTTONDOWN,HTCAPTION,0);
    end;
      

  9.   

    Kingron goto 
    http://www.csdn.net/Expert/TopicView1.asp?id=723734
    Please!