Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Resize формы в заданную область


Автор: Free-lancer 15.4.2004, 14:56
Подскажите, пожалуйста, как мне реализовать следующую штуку: имеются на экране две формы (одновременно). Одна форма расположена вверху экрана (как главное окно Builder'a), а вторая - произвольного размера. Нужно обработать событие максимизации формы таким образом, чтобы окно максимизировалось не на весь экран, а строго под верхнее окно (точно также, как максимизируется окно с редакнором кода в Builder'e). Как мне это сделать в C++ Builder?

Автор: _hunter 15.4.2004, 19:59
береш
TopBorder = Form1->Top + Form1->Height + 1
и делаеш Form2->Top = TopBorder
по-моему -- оно

Автор: Free-lancer 16.4.2004, 21:08
To: _hunter

Да нет... не так все просто. Во-первых, в какое событие писать такой обработчик, а, во-вторых, если делать подобные переприсваивания позиции, размеров и т.п. окно дергает. Т.е. так будет не красиво и, скорее всего, это как-то по-хитрому должно делаться.

Regards.

Автор: sergejzr 16.4.2004, 21:13
что если до изменений сажать Visible=false;
а потом Visible=true?

Автор: _hunter 17.4.2004, 14:50
писать в обработчик OnPaint
соответственно и дергаться будет не сильно

как-то по другому...
пишеш окно на WinAPI и делаеш с ним все, что годно smile.gif

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)