|
::Главная страница :: С++/Си :: Статьи |
Как задать
минимальный и максимальный размер окна?
Когда пользователь изменяет размеры окна, Windows сама запрашивает у программы минимальный и максимальный размеры, посылая окну сообщение WM_GETMINMAXINFO. При этом впараметре lParam размещается указатель на структуру MINMAXINFO, в которую и следует записать нужные значения. Затем нужно вернуть 0. Рассмотрим пример обработки сообщения WM_GETMINMAXINFO, при котором размер окна не может быть сделан меньше (100x100) и больше (300x300).
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { ... case WM_GETMINMAXINFO: { MINMAXINFO *pInfo = (MINMAXINFO *)lParam; POINT ptMin = { 100, 100 }, ptMax = { 300, 300 }; pInfo->ptMinTrackSize = ptMin; pInfo->ptMaxTrackSize = ptMax; return 0; } default: return DefWindowProc(hWnd, message, wParam, lParam); } }
В MFC обработчик выглядит аналогичным образом, например:
void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI) { lpMMI->ptMinTrackSize = CPoint(100, 100); lpMMI->ptMaxTrackSize = CPoint(300, 300); CFrameWnd::OnGetMinMaxInfo(lpMMI); }
ПРИМЕЧАНИЕ Для добавления этого обработчика можно использовать ClassWizard. Если оно не появляется в списке Messages, перейдите на вкладку Class Info и установите Message filter: Window. |
Тематические
ссылки
|
Ваша ссылка | Ваша ссылка |
Обмен кнопками, ведение статистики, реклама. |
|||