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;