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