Delphi как сделать mdi окно всегда максимизированным

Обновлено: 18.05.2024

Delphi Multiple MDI Children вызывает изменение состояния окна

Я ищу, чтобы предотвратить изменения изменений в Microsoft Window Window, возникающие при создании второго дочернего MDI.

У меня есть приложение, которое я разрабатываю, написанное на Delphi. Через небольшое волшебство Delphi/Windows приложение имеет несколько родителей MDI и несколько детей MDI.

Я могу создать форму (Child A1) и максимизировать ее в родительском MDI (Родитель A). Я могу создать вторую форму (Child B1) и максимизировать ее в течение второго родителя MDI (родителя B). Обе формы будут мазимизированы в отдельных родителях MDI. Все идет нормально. У меня это работает.

Однако, когда я создаю второго родителя MDI (дочерний A2) в первом родителе MDI (родитель A), WindowState (wsMaximized) первого дочернего элемента (дочерний A1) изменяется, когда создается второй ребенок (дочерний A2). Я хочу, чтобы первый ребенок (Child A1) оставался максимальным, а второй ребенок (Child A2) должен быть создан и помещен поверх первого ребенка.

Как я могу предотвратить изменение состояния первого ребенка MDI, а также создать второй ребенок MDI? Любые намеки?

ОК - Теперь я немного пообедал, может быть, я могу объяснить это лучше. здесь второй пойдет на это.

Описанное поведение может быть воспроизведено в простом приложении MDI (магия, которую я использовал для создания нескольких родителей MDI, не влияет на мою проблему)

Создать новое приложение форм, изменяющее форму в формате fsMdiForm
Создайте вторую форму, изменив ее стиль на fsMDIChild
Создайте третью форму, изменив ее стиль на fsMDIChild

Запустите приложение. Создайте вторую форму, затем максимизируйте (работает как ожидалось - максимизируется в родительском MDI)
Создайте третью форму, откроется третья форма с состоянием окна wsNormal. Но когда создается третья форма, изменяется состояние окна второй формы - она ​​перестает быть максимальной и становится wsNormal, как если бы вы нажали на восстановление!

Я хочу избежать восстановления второй формы при открытии третьей формы. (У всех форм есть исходный WindowState wsNormal.

MDI-формы. Максимизация окна при загрузке формы

Товарищи программисты! Случилась следующая проблема: я делаю приложение, использующее MDI-формы. Условия их работы таковы:
1. В один момент времени отображается не более одной формы
2. Дочерние формы отображаются развернутыми на все окно родительской формы.
3. В процессе работы приложения постоянно происходит переключение между различными формами.

При попытке использовать метод <ИмяФормы>.Hide и установке свойства WindowState на "Maximized" все в принципе работает. Но стоит мне один раз переключится с формы А на форму B и обратно - окна уже не являются развернутыми. По-моему, проблема в том, что метод WindowState работает только при загрузке формы. Однако формы я могу загрузить только один раз, т.к. делаю дочерние формы следующим образом, и по-другому не умею. Подскажите, пожалуйста, способ принудительно максимизировать форму.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

94731 / 64177 / 26122 Ответы с готовыми решениями:

ToolStrip MDI-формы съезжает вниз при развертывании дочернего окна на весь экран
Доброго дня! Программно добавляю ToolStrip в родительскую форму MDI. А при разворачивании дочернего.


Максимизация dataGridView при максимизации формы
На форме есть панель с вкладками, на каждой вкладке свой dataGridView(dgv), хотелось бы при.


Нужно при загрузке формы загружать рандомный беграунд формы
Нужно при загрузке формы загружать рандомный беграунд формы. Все беграунды сохранены в отдельной.


Изменение системного меню (в заголовке окна) MDI-CHILD формы
Всем привет. Может кто-нибудь подсказать, как измененить системное меню MDI-CHILD формы. У.

MainMenu в MDI-приложении

В новом проекте, создаю 3 формы.
Затем на каждую из них кидаю компонент MainMenu.После задаю в нём пункты.
Запускаю, как видно, всё создаётся - меню в норме.

После, этого меняю у первой формы свойство FormStyle c "fsNormal" на "fsMDIForm".
Далее, у второй и третьей меняю свойство FormStyle с "fsNormal" на "fsMDIChild".

В итоге получается одно главное окно с двумя дочерними.
Но, MainMenu на дочерних окнах пропадает.
А MainMenu на главной - меняется в зависимости от активного окна дочернего.

Как быть? Заранее спасибо за ответ.

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы ( 1 ) 94731 / 64177 / 26122 Ответы с готовыми решениями:

DBLookupComboBox в MDI приложении
Здравствуйте! Создаю простую базу данных в виде MDI приложении. Есть дочернее окно с таблице в.

Два MDI в одном приложении
Прошу помощи у продвинутых. У меня есть рабочая прога с MDI окнами. Все работает нормально.

Открытие файлов в MDI приложении
Сделал многооконный текстовый редактор. Остался недоделанным пункт открытия текста в отдельном.

Подключение savedialog в MDI приложении
Я создаю MDI приложение и мне нужно, чтобы кнопки save и save as сохранили активную MDIChild. Как.

723 / 475 / 130 Так и будь, меню же для активного окна есть 15 / 15 / 10 Записей в блоге: 1 А мне надо, не только для активного, а ещё для двух модальных окон (Form2 и Form3) пофигист широкого профиля 4394 / 2893 / 819 MainMenu на дочерних окнах пропадает.
А MainMenu на главной - меняется в зависимости от активного окна дочернего. Стандартное поведение MDI приложения. Сам так захотел. 15 / 15 / 10 Записей в блоге: 1 Стандартное поведение MDI приложения. Сам так захотел. Мне нужна альтернатива, или другой способ, которым это можно реализовать. 15 / 15 / 10 Записей в блоге: 1

У кого-нибудь есть идеи по поводу этой проблемы?

Добавлено через 21 минуту
Немного погуглив узнал следующее:

У TMenuItem существует такой параметр как GroupIndex для MDI приложений он "заключается" в том, что если параметр дочернего окна будет совпадать с параметром другого пункта родительского меню, то происходит замена этого родительского пункта меню на дочернее.
По умолчанию стоит 0. Поэтому, если мы в родительском меню, меняем все значения пунктов на другое, то при создании дочерней формы. меню полностью объединяется.
Стоит сказать, если GroupIndex у пункта дочернего меню = (допустим 2) А родительские пункты один равен 1 а другой 3, то Он становится между родительскими. (упорядочивается)

- Да, это полезно, но как сделать чтобы у каждого MDI окна было своё меню а не объединённое?

Delphi как сделать mdi окно всегда максимизированным

Добрый день!
Мне нужно чтобы в MDI приложении первое созданное
дочернее окно было максимизировано.
Делал WindowState = wsMaximized. При этом хорошо видно, как оно сначала создаётся с нормальными размерами, а затем расширяется.
Мне нужно чтобы оно было максимизировано сразу. Я видел такие приложения.

От: TObject
Дата: 16.09.04 08:52
Оценка:
Здравствуйте, ak_miass, Вы писали:

_>Добрый день!
_>Мне нужно чтобы в MDI приложении первое созданное
_>дочернее окно было максимизировано.
_>Делал WindowState = wsMaximized. При этом хорошо видно, как оно сначала создаётся с нормальными размерами, а затем расширяется.
Это вроде как фича MDI. походу никак. ИМХО. . << RSDN@Home 1.1.4 @@subversion >>
От: Diouzshev
Дата: 16.09.04 09:28
Оценка:

странно, не заметил такого эффекта. (может анимация выключена)
Может попробовать Visible = False в Designtime а в рантайме WindowState := wsMaximized; Visible := True;?

With best regards, Alexander Diouzshev-Maltsev.

Posted via RSDN NNTP Server 1.9 gamma

Здравствуйте, ak_miass, Вы писали:

Подскажу возможный путь.

Особенность MDI-окон состоит в том, что они не могут быть невидимыми. Поэтому MDI-окно создается сразу видимым, а максимизация отрабатывает позднее.

Соответственно, цель заключается в том, чтобы окно было изначально максимизированным (до того, как станет видимым). Я вижу два возможных варианта:

— устанавливать WindowState в конструкторе окна до вызова inherited (то есть до считывания dfm)

— в дизайн-тайме описать это окно как fsNormal и wsMaximized, а стиль MDIChild устанавливать в ран-тайме (при этом, если не ошибаюсь, окно автоматом станет видимым).

Re[2]: Как автоматически максимизировать дочернее MDI окно
От: ak_miass
Дата: 16.09.04 13:04
Оценка:

Здравствуйте, Softwarer, Вы писали:

S>- в дизайн-тайме описать это окно как fsNormal и wsMaximized, а стиль MDIChild устанавливать в ран-тайме (при этом, если не ошибаюсь, окно автоматом станет видимым).

В этом случае если в дизайн-тайме поставить Visible = false, то эффект остаётся тот же. А если Visible = true, то ещё хуже: сначала появляется окно на весь экран и затем уменьшается. Если затем вернуть ему wsNormal, оно остаётся плавать внутри главоного окна, но при этом огромных размеров.

Re[3]: Как автоматически максимизировать дочернее MDI окно

Здравствуйте, ak_miass, Вы писали:

Нда. Там довольно интересно — эта "мультипликация" отрабатывается отдельно, уже после того как окно создано, показано, активизировано. Покопаюсь; если найду способ — опубликую.

P.S. Правильно я сделал лет семь назад, что раз и навсегда решил не использовать MDI

Re[4]: Как автоматически максимизировать дочернее MDI окно

Здравствуйте, ak_miass, Вы писали:

Что ж, вот такой код отрабатывает вполне неплохо.


Почему-то если запихнуть то же самое внутрь конструктора MDIChild-а, у меня это не срабатывает. Почему — надо будет разобраться, но пока — могу предложить такое решение.

Re[5]: Как автоматически максимизировать дочернее MDI окно
От: ak_miass
Дата: 17.09.04 04:28
Оценка:

Здравствуйте, Softwarer, Вы писали:

S>Что ж, вот такой код отрабатывает вполне неплохо.

S>

Спасибо! Это помогло.

S>Почему-то если запихнуть то же самое внутрь конструктора MDIChild-а, у меня это не срабатывает.

Думаю, что в конструкторе окно ещё не показано на экране.

Re[6]: Как автоматически максимизировать дочернее MDI окно
От: Diouzshev
Дата: 17.09.04 07:48
Оценка:

Hello, ak_miass!
You wrote on Fri, 17 Sep 2004 04:28:03 GMT:

S>> Что ж, вот такой код отрабатывает вполне неплохо.
S>>

am> Спасибо! Это помогло.

S>> Почему-то если запихнуть то же самое внутрь конструктора MDIChild-а,
S>> у меня это не срабатывает.

am> Думаю, что в конструкторе окно ещё не показано на экране.

With best regards, Alexander Diouzshev-Maltsev.

Posted via RSDN NNTP Server 1.9 gamma Re[7]: Как автоматически максимизировать дочернее MDI окно
От: ak_miass
Дата: 17.09.04 10:08
Оценка:

Здравствуйте, Diouzshev, Вы писали:

Нет, там тоже не работает. Но тот вариант, который предложил Softwarer мне вполне подходит.

Delphi как сделать mdi окно всегда максимизированным

Добрый день!
Мне нужно чтобы в MDI приложении первое созданное
дочернее окно было максимизировано.
Делал WindowState = wsMaximized. При этом хорошо видно, как оно сначала создаётся с нормальными размерами, а затем расширяется.
Мне нужно чтобы оно было максимизировано сразу. Я видел такие приложения.

От: TObject
Дата: 16.09.04 08:52
Оценка:
Здравствуйте, ak_miass, Вы писали:

_>Добрый день!
_>Мне нужно чтобы в MDI приложении первое созданное
_>дочернее окно было максимизировано.
_>Делал WindowState = wsMaximized. При этом хорошо видно, как оно сначала создаётся с нормальными размерами, а затем расширяется.
Это вроде как фича MDI. походу никак. ИМХО. . << RSDN@Home 1.1.4 @@subversion >>
От: Diouzshev
Дата: 16.09.04 09:28
Оценка:

странно, не заметил такого эффекта. (может анимация выключена)
Может попробовать Visible = False в Designtime а в рантайме WindowState := wsMaximized; Visible := True;?

With best regards, Alexander Diouzshev-Maltsev.

Posted via RSDN NNTP Server 1.9 gamma

Здравствуйте, ak_miass, Вы писали:

Подскажу возможный путь.

Особенность MDI-окон состоит в том, что они не могут быть невидимыми. Поэтому MDI-окно создается сразу видимым, а максимизация отрабатывает позднее.

Соответственно, цель заключается в том, чтобы окно было изначально максимизированным (до того, как станет видимым). Я вижу два возможных варианта:

— устанавливать WindowState в конструкторе окна до вызова inherited (то есть до считывания dfm)

— в дизайн-тайме описать это окно как fsNormal и wsMaximized, а стиль MDIChild устанавливать в ран-тайме (при этом, если не ошибаюсь, окно автоматом станет видимым).

Re[2]: Как автоматически максимизировать дочернее MDI окно
От: ak_miass
Дата: 16.09.04 13:04
Оценка:

Здравствуйте, Softwarer, Вы писали:

S>- в дизайн-тайме описать это окно как fsNormal и wsMaximized, а стиль MDIChild устанавливать в ран-тайме (при этом, если не ошибаюсь, окно автоматом станет видимым).

В этом случае если в дизайн-тайме поставить Visible = false, то эффект остаётся тот же. А если Visible = true, то ещё хуже: сначала появляется окно на весь экран и затем уменьшается. Если затем вернуть ему wsNormal, оно остаётся плавать внутри главоного окна, но при этом огромных размеров.

Re[3]: Как автоматически максимизировать дочернее MDI окно

Здравствуйте, ak_miass, Вы писали:

Нда. Там довольно интересно — эта "мультипликация" отрабатывается отдельно, уже после того как окно создано, показано, активизировано. Покопаюсь; если найду способ — опубликую.

P.S. Правильно я сделал лет семь назад, что раз и навсегда решил не использовать MDI

Re[4]: Как автоматически максимизировать дочернее MDI окно

Здравствуйте, ak_miass, Вы писали:

Что ж, вот такой код отрабатывает вполне неплохо.


Почему-то если запихнуть то же самое внутрь конструктора MDIChild-а, у меня это не срабатывает. Почему — надо будет разобраться, но пока — могу предложить такое решение.

Re[5]: Как автоматически максимизировать дочернее MDI окно
От: ak_miass
Дата: 17.09.04 04:28
Оценка:

Здравствуйте, Softwarer, Вы писали:

S>Что ж, вот такой код отрабатывает вполне неплохо.

S>

Спасибо! Это помогло.

S>Почему-то если запихнуть то же самое внутрь конструктора MDIChild-а, у меня это не срабатывает.

Думаю, что в конструкторе окно ещё не показано на экране.

Re[6]: Как автоматически максимизировать дочернее MDI окно
От: Diouzshev
Дата: 17.09.04 07:48
Оценка:

Hello, ak_miass!
You wrote on Fri, 17 Sep 2004 04:28:03 GMT:

S>> Что ж, вот такой код отрабатывает вполне неплохо.
S>>

am> Спасибо! Это помогло.

S>> Почему-то если запихнуть то же самое внутрь конструктора MDIChild-а,
S>> у меня это не срабатывает.

am> Думаю, что в конструкторе окно ещё не показано на экране.

With best regards, Alexander Diouzshev-Maltsev.

Posted via RSDN NNTP Server 1.9 gamma Re[7]: Как автоматически максимизировать дочернее MDI окно
От: ak_miass
Дата: 17.09.04 10:08
Оценка:

Здравствуйте, Diouzshev, Вы писали:

Нет, там тоже не работает. Но тот вариант, который предложил Softwarer мне вполне подходит.

Delphi как сделать mdi окно всегда максимизированным

Добрый день!
Мне нужно чтобы в MDI приложении первое созданное
дочернее окно было максимизировано.
Делал WindowState = wsMaximized. При этом хорошо видно, как оно сначала создаётся с нормальными размерами, а затем расширяется.
Мне нужно чтобы оно было максимизировано сразу. Я видел такие приложения.

От: TObject
Дата: 16.09.04 08:52
Оценка:
Здравствуйте, ak_miass, Вы писали:

_>Добрый день!
_>Мне нужно чтобы в MDI приложении первое созданное
_>дочернее окно было максимизировано.
_>Делал WindowState = wsMaximized. При этом хорошо видно, как оно сначала создаётся с нормальными размерами, а затем расширяется.
Это вроде как фича MDI. походу никак. ИМХО. . << RSDN@Home 1.1.4 @@subversion >>
От: Diouzshev
Дата: 16.09.04 09:28
Оценка:

странно, не заметил такого эффекта. (может анимация выключена)
Может попробовать Visible = False в Designtime а в рантайме WindowState := wsMaximized; Visible := True;?

With best regards, Alexander Diouzshev-Maltsev.

Posted via RSDN NNTP Server 1.9 gamma

Здравствуйте, ak_miass, Вы писали:

Подскажу возможный путь.

Особенность MDI-окон состоит в том, что они не могут быть невидимыми. Поэтому MDI-окно создается сразу видимым, а максимизация отрабатывает позднее.

Соответственно, цель заключается в том, чтобы окно было изначально максимизированным (до того, как станет видимым). Я вижу два возможных варианта:

— устанавливать WindowState в конструкторе окна до вызова inherited (то есть до считывания dfm)

— в дизайн-тайме описать это окно как fsNormal и wsMaximized, а стиль MDIChild устанавливать в ран-тайме (при этом, если не ошибаюсь, окно автоматом станет видимым).

Re[2]: Как автоматически максимизировать дочернее MDI окно
От: ak_miass
Дата: 16.09.04 13:04
Оценка:

Здравствуйте, Softwarer, Вы писали:

S>- в дизайн-тайме описать это окно как fsNormal и wsMaximized, а стиль MDIChild устанавливать в ран-тайме (при этом, если не ошибаюсь, окно автоматом станет видимым).

В этом случае если в дизайн-тайме поставить Visible = false, то эффект остаётся тот же. А если Visible = true, то ещё хуже: сначала появляется окно на весь экран и затем уменьшается. Если затем вернуть ему wsNormal, оно остаётся плавать внутри главоного окна, но при этом огромных размеров.

Re[3]: Как автоматически максимизировать дочернее MDI окно

Здравствуйте, ak_miass, Вы писали:

Нда. Там довольно интересно — эта "мультипликация" отрабатывается отдельно, уже после того как окно создано, показано, активизировано. Покопаюсь; если найду способ — опубликую.

P.S. Правильно я сделал лет семь назад, что раз и навсегда решил не использовать MDI

Re[4]: Как автоматически максимизировать дочернее MDI окно

Здравствуйте, ak_miass, Вы писали:

Что ж, вот такой код отрабатывает вполне неплохо.


Почему-то если запихнуть то же самое внутрь конструктора MDIChild-а, у меня это не срабатывает. Почему — надо будет разобраться, но пока — могу предложить такое решение.

Re[5]: Как автоматически максимизировать дочернее MDI окно
От: ak_miass
Дата: 17.09.04 04:28
Оценка:

Здравствуйте, Softwarer, Вы писали:

S>Что ж, вот такой код отрабатывает вполне неплохо.

S>

Спасибо! Это помогло.

S>Почему-то если запихнуть то же самое внутрь конструктора MDIChild-а, у меня это не срабатывает.

Думаю, что в конструкторе окно ещё не показано на экране.

Re[6]: Как автоматически максимизировать дочернее MDI окно
От: Diouzshev
Дата: 17.09.04 07:48
Оценка:

Hello, ak_miass!
You wrote on Fri, 17 Sep 2004 04:28:03 GMT:

S>> Что ж, вот такой код отрабатывает вполне неплохо.
S>>

am> Спасибо! Это помогло.

S>> Почему-то если запихнуть то же самое внутрь конструктора MDIChild-а,
S>> у меня это не срабатывает.

am> Думаю, что в конструкторе окно ещё не показано на экране.

With best regards, Alexander Diouzshev-Maltsev.

Posted via RSDN NNTP Server 1.9 gamma Re[7]: Как автоматически максимизировать дочернее MDI окно
От: ak_miass
Дата: 17.09.04 10:08
Оценка:

Здравствуйте, Diouzshev, Вы писали:

Нет, там тоже не работает. Но тот вариант, который предложил Softwarer мне вполне подходит.

Delphi как сделать mdi окно всегда максимизированным

1) Не максимизируй.


> Можно ли этого избежать? Т.е. форма создалась, но не активизировалась?

Нельзя. Это закон MDI.

а зачем show для уже отображаемого окна?
или это для еще одного (нового)?

нужно сделать активным нужное окно

а как активизировать другое MDI окно?
Activate выдает ошибку :(

Игорь Шевченко © (24.01.03 11:23)

Нельзя. Это закон MDI.
Сдается мне, проблемы с дизайном имеются.

>>нужно блокировать обновление окна, открывать нужное, а потом >>рзблокироватьь обновление

Интересно! А пример можно?

SendMessage(Handle,WM_SETREDRAW,0,0);
или
LockWindowUpdate(Handle);

SendMessage(Handle,WM_SETREDRAW,1,0);
RedrawWindow(Handle,NULL,0,RDW_INVALIDATE | RDW_ERASE | RDW_FRAME | RDW_ALLCHILDREN);

еще одно mdi или еще одно child в единственном mdi?
mdiform имеем свойство activemdichild (readonly).
для активации окна есть процедуры next и previous
можеть, хелп поможет?

. Я посмотрел пример в репозитории - там тоже самое.

что, то же самое?
прога из репозитория создает и открывает окна каскадом, не максимизируя (у меня так было).

Большое спасибо! Дома буду пробовать.

myor © (24.01.03 13:11)

>>что, то же самое?
>>прога из репозитория создает и открывает окна каскадом, не >>максимизируя (у меня так было).

Теперь попробуйте максимизировать какое-то окно, после чего попереключаться между окнами через пункты меню, внимательно вглядываясь в окошки. Только вот дело в том, что пример - простейший текстовый редактор, а у меня это браузер и выглядит еще хуже :(, так как дольше этот эффект виден :(

Эту ветку я начал не из-за того, что я хочу сам не знаю что. Я реально видел прогу, у которой при переключении окошек максимизации не было видно, и которая создает окошки без активизации!

try
<
pWnd = new CChildFrame;
>
catch(. )
<
return NULL;
>

if(pWnd == NULL)
return NULL;
pWnd->m_bForceActive = bForceActive;

if (!pWnd->Create(_T("ChildFrame"), "",
WS_CHILD | WS_OVERLAPPEDWINDOW, rectDefault, this))
<
delete pWnd;
return NULL;
>

WindowHandle := SendMessage(Application.MainForm.ClientHandle,
WM_MDICREATE, 0, Longint(@CreateStruct));

Можно еще через CreateMDIWindow :-)

Chubais © (27.01.03 12:07)
:tongue:

Странно, я помню.
Пример: есть форма, я назвал ее ChildForm. Автоматически создается класс TChildForm. :)

>>Вот пример создания без активации на Си, как сделать подобное на делфи?

>>MDI-child"ы создаются по-другому.

if(pWnd == NULL)
return NULL;
pWnd->m_bForceActive = bForceActive;

if (!pWnd->Create(_T("ChildFrame"), "",
WS_CHILD | WS_OVERLAPPEDWINDOW, rectDefault, this))
<
delete pWnd;
return NULL;
>

WS_CHILD Creates a child window. Cannot be used with the WS_POPUP style. (C) MSDN

Hotmail automatically scans all attachments using McAfee.

Name of File Virus Scan Result
myie32src.zip Unknown virus scanner failure Virus Found

TabSET и MDI окна

Проблема в том что в режиме OnChange для компонента Tabset не получается выбрать страницу - и использовать Index страницы..

добавляется всё без проблем - но при клике на второй странице получаешь индекс 4
при клике на 4 страницу получаешь индекс 0
на первой 3
на второй 4 и т.д. - оно сама по себе смешивается не получается получить правильно получить индекс выбранной страницы.


Ребята знатоки может кто то знает как это можно реализовать?(просто мне самому стало интересно как же так не получаться)
вот последний код

Delphi: максимизировать дочернее окно в проекте MDI

Существует хороший компонент для максимизации дочернего окна в клиентской области (должен храниться ключ SHIFT) - NLDExtraMDIProps.

Или этот код можно использовать:

Но максимизация не является реальным максимизацией. Детское окно выровнено только с клиентской областью. Он должен автоматически изменять размер и соответствовать области клиента при изменении размера родительского окна, кнопка системы максимизации/восстановления должна измениться и т.д.

Я пытаюсь выполнить эффекты, описанные ниже.

Как вы видите на рисунках, дочерние окна максимизированы, и

1) они не принимают все родительское окно (только клиентская область).

2) Невозможно переместить их над заголовком/заголовком, потому что они максимизированы.

3) У них есть кнопка восстановления, а не кнопка максимизации.

4) Они совпадают с клиентской областью (изменение размера родительского окна приводит к изменению размера дочернего объекта с клиентской областью).

Код в моем вопросе и компоненте не работает, как дочерние окна на изображениях.

Можем ли мы сделать окно действительно максимизированным (не просто выровненным)?

Не максимизировано (не хорошо, компонент и код из моего вопроса максимизируются, как на этих снимках):

Читайте также: