4

formChild のメッセージを処理するための MDI アプリケーションとウィンドウ プロシージャがあります。この場合、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;
4

0 に答える 0