用消息欺骗可以实现拖动没有标准栏的窗体,但是如果我在这个窗体上加一幅图片,
如何实现?

解决方案 »

  1.   

    //鼠标左键单击图片同事移动鼠标,窗体会同时随着鼠标移动
    procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    begin
      if Button=mbLeft then
      begin
        windows.ReleaseCapture;
        self.Perform(messages.WM_SYSCOMMAND,$f017,0);
      end;
    end;
      

  2.   

    声明全局变量 bool move; int old_x1,old_y1;
    void __fastcall TForm1::LabelDateMouseDown(TObject *Sender,
          TMouseButton Button, TShiftState Shift, int X, int Y)
    {
     if(Button==mbLeft)
     {
      old_y1=Y;
      old_x1=X;
      move=true;
     }
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::LabelDateMouseMove(TObject *Sender,
          TShiftState Shift, int X, int Y)
    {
      if(move)
      {
       Form1->Left+=X-old_x1;
       Form1->Top+=Y-old_y1;
      }
    }
    void __fastcall TForm1::LabelDateMouseUp(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y)
    { move=false;}这段代码是拖动窗体上的LabelDate 使得整个窗体移动   你说的是这个意思么