// 最小最大サイズ(X、Y)を定義する。 #define MAINFRAME_X_MIN (600) #define MAINFRAME_Y_MIN (300) #define MAINFRAME_X_MAX (800) #define MAINFRAME_Y_MAX (400) // 最大最小サイズを対象クラスのメンバ変数(X、Y)として宣言する。 protected: LONG m_lXMin; ///< 横MIN LONG m_lYMin; ///< 縦MIN LONG m_lXMax; ///< 横MAX LONG m_lYMax; ///< 縦MAX // コンストラクタで上記メンバ変数を初期化する。 XXXXXXXX::XXXXXXXX() { m_lXMin = MAINFRAME_X_MIN; m_lYMin = MAINFRAME_Y_MIN; m_lXMax = MAINFRAME_X_MAX; m_lYMax = MAINFRAME_Y_MAX; } // 初期状態のサイズを最小サイズとする場合 BOOL CTimerDlg::OnInitDialog() { if (GetSafeHwnd()) { CRect rcDlg; GetWindowRect(&rcDlg); m_lXMin = rcDlg.Width(); m_lYMin = rcDlg.Height(); } } // WM_GETMINMAXINFO メッセージを受け取るAPIを用意し、上記メンバ変数値を設定する。 void XXXXXXXX::OnGetMinMaxInfo(MINMAXINFO* lpMMI) { // 最小値 lpMMI->ptMinTrackSize.x = m_lXMin; lpMMI->ptMinTrackSize.y = m_lYMin; // 最大値 lpMMI->ptMaxTrackSize.x = m_lXMax; lpMMI->ptMaxTrackSize.y = m_lYMax; CFrameWnd::OnGetMinMaxInfo(lpMMI); }