【WinAPI】C++ ウィンドウの最小サイズと最大サイズを取得する(WM_GETMINMAXINFO)
メモ
ウィンドウメッセージ「WM_GETMINMAXINFO」を、目的のウィンドウに送信して取得する。
ウィンドウのサイズ制御は、アプリ毎に実装が異なるので、
ウィンドウ側がメッセージを処理していない場合には、取得できないことに注意する。
実装
int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow) { // 適当なウィンドウハンドル auto hWnd = ::FindWindow(nullptr, TEXT("Microsoft Visual Studio")); // 最小・最大サイズを取得 MINMAXINFO mmInfo{}; ::SendMessage(hWnd, WM_GETMINMAXINFO, 0, reinterpret_cast<LPARAM>(&mmInfo)); // 最小サイズ mmInfo.ptMinTrackSize.x; mmInfo.ptMinTrackSize.y; // 最大サイズ mmInfo.ptMaxTrackSize.x; mmInfo.ptMaxTrackSize.y; return 0; }