Как задать минимальный и максимальный размер окна
|
Когда изменяются размеры окна, Windows запрашивает у программы минимальный и максимальный размеры, посылая сообщение WM_GETMINMAXINFO.
WM_GETMINMAXINFO lpmmi = (LPMINMAXINFO) lParam; // адрес структуры При этом в параметре lParam размещается указатель на структуру MINMAXINFO, в которую и следует записать нужные значения.
Пример для WinAPI:
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { // ... case WM_GETMINMAXINFO: //Получили сообщение от Винды { MINMAXINFO *pInfo = (MINMAXINFO *)lParam; POINT Min = { 50, 50 }; POINT Max = {100, 100 }; pInfo->ptMinTrackSize = Min; // Установили минимальный размер pInfo->ptMaxTrackSize = Max; // Установили максимальный размер return 0; }
default: return DefWindowProc(hWnd, message, wParam, lParam); } } Пример для MFC:
void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) { lpMMI->ptMinTrackSize = CPoint(50, 50); // Установили минимальный размер lpMMI->ptMaxTrackSize = CPoint(100, 100); // Установили максимальный размер CFrameWnd::OnGetMinMaxInfo(lpMMI); } |