procedure TForm1.Button1Click(Sender: TObject);
begin
  Perform(WM_SYSCOMMAND, SC_MINIMIZE, 0); //最小化
end;procedure TForm1.Button2Click(Sender: TObject);
begin
  Perform(WM_SYSCOMMAND, SC_MAXIMIZE, 0); //最大化
end;procedure TForm1.Button3Click(Sender: TObject);
begin
  Perform(WM_SYSCOMMAND, SC_CLOSE, 0); //关
end;procedure TForm1.Button4Click(Sender: TObject);
begin
  Perform(WM_SYSCOMMAND, SC_RESTORE, 0); //恢复
end;

解决方案 »

  1.   

    需要在TForm里拦截WM_NCPaint、WM_NCHitTest等消息,然后自己在标题栏里画和响应点击消息。
      

  2.   

    我也只是听说而已。因为标题栏属于非客户区,所以你必须拦截WM_NCPAINT消息,在处理这个消息时画上自己的按钮;然后你需要拦截WM_NCHITTEST消息,判断鼠标是否点在你的按钮上,若是,你就看着办吧!另外,好像还得拦截WM_NCACTIVE消息,然后再画一次按钮。系统的标准按钮也是这么加上的。
      

  3.   

    //参考
    http://www.csdn.net/expert/topic/360/360881.shtm