将当前Form下的BorderIcons下的Biminimize值设为false即可

解决方案 »

  1.   

    form的bordericons下可以控制窗口的最大、最小、关闭和帮助按钮
      

  2.   

    l_xiaofeng(流水不腐) 说得对,我要的不是这个答案。还望高人指点。
      

  3.   

    //重载Form的wm_syscommand消息
    procedure WMSYSCOMMAND(var Msg: TMessage); message wm_syscommandprocedure TForm1.WMSYSCOMMAND(var Msg: TMessage);
    begin
      if Msg.WParam = SC_ICON then  // SC_ICON 最小
        Msg.WParam := SC_ZOOM;      // SC_ZOOM 最大
      inherited;
    end;
    ================================================================曾经有一碗热辣辣的烧猪手面放在我面前,我没有珍惜,等到晾凉了之后才后悔莫及。
      

  4.   

    同意 Jerry529(我是衰哥我怕谁???)
      

  5.   

    谢谢 Jerry529(我是衰哥我怕谁???)
      

  6.   

    procedure winproc(var message:tmessage);override;//重载窗口过程
    if message.msg=wm_minimizerd then//忘记了
        //do something
      

  7.   

    procedure wmmessage(var msg:tmessage);message wm_syscommand;procedure tform1.wmmessage(var msg:tmessage);
    begin
     if msg.WParam=sc_icon then
       showmessage('最小化')
     else
        inherited;
     end;
      

  8.   

    ssl2000(大宋) :
      消息中没有wm_minimizerd这个常量zhuxud(圣东方) :
       任务栏右键菜单的最小化不会触发WM_SYSCOMMAND消息;
      

  9.   

    procedure WMSYSCOMMAND(var Msg: TMessage); message wm_syscommandprocedure TForm1.WMSYSCOMMAND(var Msg: TMessage);
    begin
      if not ((Msg.WParam = SC_ICON)or(Msg.WParam = SC_Minimaze)) then 
       // SC_ICON 最小
         inherited;
    end
      

  10.   

    那就再加一点:procedure TForm1.FormCreate(Sender: TObject);
    begin
    deletemenu(GetSystemMenu
    (Application.Handle, FALSE),SC_icon,MF_BYCOMMAND )
    end;
      

  11.   

    声明:
    procedure WMSysCommand(Var Msg:TWMSYSCOMMAND);Message WM_SYSCOMMAND;procedure WMSysCommand(Var Msg:TWMSysCommand);
    begin
      Case Msg.CmdType of
            SC_MINIMIZE:;
      else
            Inherited;
      end;
    end;
      

  12.   

    //再来一招
    procedure DefaultHandler(var Message); override;procedure TForm1.DefaultHandler(var Message);
    begin
      if TMessage(Message).WParam = SC_ICON then
      begin
        Exit;
      end; inherited;
    end;
    //可以结帖了吧?!================================================================曾经有一碗热辣辣的烧猪手面放在我面前,我没有珍惜,等到晾凉了之后才后悔莫及。
      

  13.   

    我这个一定行!
    ========================
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        procedure FormCreate(Sender: TObject);
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
        procedure SubClassWndProc(var Message: TMessage);
      public
        { Public declarations }
      end;var
      Form1: TForm1;
    implementation{$R *.DFM}
    procedure Tform1.SubClassWndProc(var Message: TMessage);begin
      if (message.Msg = WM_SHOWWINDOW) then
         MESSAGE.Result := 1  else
        form1.WndProc(Message);end;procedure TForm1.FormCreate(Sender: TObject);
    begin
       WindowProc := SubClassWndProc;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
       application.Terminate;
    end;end.
      

  14.   

    采用双管齐下战术,搞定。1、第一步:替换Application->Handle的窗口过程FARPROC FOldProc;LRESULT CALLBACK AppWindowProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);//---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
    {
      FOldProc = (FARPROC)SetWindowLong(Application->Handle,GWL_WNDPROC,long(AppWindowProc));
    }
    //---------------------------------------------------------------------------
    //AppWindowProc
    LRESULT CALLBACK AppWindowProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
    {
      if(uMsg == WM_SYSCOMMAND)
      {
        if(wParam == SC_MINIMIZE)
        {
          MessageBox(NULL,"You can not minimize:-).",NULL,MB_OK | MB_APPLMODAL | MB_ICONWARNING);
          return 1;
        }
      }  return CallWindowProc((FARPROC)FOldProc,hwnd,uMsg,wParam,lParam);
    }
    //---------------------------------------------------------------------------2、重载TForm的WndProc方法。void __fastcall TForm1::WndProc(Messages::TMessage &Message)
    {
      if(Message.Msg == WM_SYSCOMMAND)
      {
        if(Message.WParam == SC_MINIMIZE)
        {
          MessageBox(NULL,"You can not minimize MainWnd:-).",NULL,MB_OK | MB_APPLMODAL | MB_ICONWARNING);
          return;
        }
      }  TForm::WndProc(Message);
    }
    //---------------------------------------------------------------------------你要是还能最小化,我倒贴分给你:-)