当子表单最大化时,WM_SYSCOMMAND不起作用

时间:2012-10-19 15:40:19

标签: delphi delphi-xe2

我有一个MDI应用程序和一个窗口过程来处理formChild的消息。在这种情况下,捕获WM_SYSCOMMAND消息以显示文本。当表单最小化时,显示一条消息。

一切正常,但是

问题是当子窗体最大化然后我尝试最小化窗体时,WM_SYSCOMMAND不起作用,ShowMessage不显示。

在这种情况下我能捕捉到什么信息?

//TCHild Form Child

function MDIChildProc(hwnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
var
  F: TChild;
begin
  F := TChild(FindControl(hwnd));
  begin
    case uMsg of
      WM_SYSCOMMAND:
      begin
        case wParam and $FFF0 of
          SC_MINIMIZE:
          begin
            {First Minimize then show text} 
            CallWindowProc(Pointer(F.Tag), hwnd, uMsg, wParam, lParam);  
            ShowMessage('form minimized');
          end;
        end;
      end;
    end;
    Result := CallWindowProc(Pointer(F.Tag), hwnd, uMsg, wParam, lParam);
  end;
end;

0 个答案:

没有答案