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/