OberonCore https://forum.oberoncore.ru/ |
|
Как ограничить размеры окна? https://forum.oberoncore.ru/viewtopic.php?f=24&t=2646 |
Страница 1 из 1 |
Автор: | Иван Кузьмицкий [ Воскресенье, 16 Май, 2010 14:11 ] |
Заголовок сообщения: | Как ограничить размеры окна? |
На поле битвы за ресайз (viewtopic.php?f=24&t=2622 viewtopic.php?f=24&t=2645), всплыла новая проблема. Пользователь может так уменьшить окно, что масштабирование контролов приведёт к ошибкам округления. Да и уменьшать менее определённого размера (когда контролы становятся попросту неработоспособными) нет смысла! Поэтому понадобилась такая возможность, как ограничение размера окна. В винде есть такая возможность: если достигнут минимальный размер окна, то рамка размеров просто перестаёт действовать. Чтобы задавать минимальные размеры окна, в WinApi надо обработать уведомление WM_GETMINMAXINFO. Я заглянул в HostWindows и обнаружил, что в обработчике DocWinHandler есть закомментаренный блок: Код: (* | USER32.WMGetMinMaxInfo: w := ThisWindow(wnd); IF (w # NIL) & (w.mw > 0) & (Windows.noResize IN w.flags) THEN pm := SYSTEM.VAL(USER32.PMinMaxInfo, lParam); pm.maxTrackSize.x := w.mw; pm.maxTrackSize.y := w.mh; Controllers.ResetCurrentPath(); RETURN 0 END *) Близок локоток, да не укусишь В ББ 1.6 тоже закомментарено. Что это? Разработчики сомневаются в работоспособности схемы или просто не успели отладить? |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |