我在处理程序的最大化和最小化消息时出现一个问题:
procedure MessageHandle(var msg:TMessage);message WM_GetMinMaxInfo;
我在调试过程中发现它只能过滤最大化消息,而最小化消息不行?我看了MSDN
,上面说可以过滤最大化和最小化消息,不知道是什么原因,除了WM_GetMinMaxInfo
,如果还有什么消息可用,可以告诉我!谢谢!~

解决方案 »

  1.   

    procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;----------procedure TForm1.WMSysCommand(var Msg: TWMSysCommand);
    begin
      if Msg.CmdType = SC_MINIMIZE then
      begin
      //最小化
      end
      else if Msg.CmdType = SC_MAXIMIZE then
      begin
      //最大化
      end;
      inherited;
    end;
      

  2.   

    WM_SYSCOMMANDprocedure TForm1.WMSysCommand; 
    begin 
    if (Msg.CmdType = SC_MINIMIZE) or 
    (Msg.CmdType = SC_MAXIMIZE) then 
    MessageBeep(0) else 
    inherited; 
    end;