0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 47
|
|
1 | |
Как в MDI спрятать панельку, отображающуюся при сворачивании дочернего-окна?05.01.2013, 15:30. Показов 1895. Ответов 5
Метки нет (Все метки)
Скажите, пожалуйста, как в MDI приложении спрятать панельку, отображающаяся при сворачивании child-окна (см. вложение)? Дело в том, что при сворачивания дочернего окна вместо стандартной панельки у меня будут формироваться вкладки на отдельной панели типа как в Windows'e.
0
|
05.01.2013, 15:30 | |
Ответы с готовыми решениями:
5
MDI приложение. Баг при программном разворачивании дочернего окна ToolStrip MDI-формы съезжает вниз при развертывании дочернего окна на весь экран Как изменить Memo активного дочернего окна MDI приложения? Как задать информацию, отображающуюся в левой части окна, при просмотре архива в WinRAR? |
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 47
|
|||||||||||
05.01.2013, 19:47 [ТС] | 3 | ||||||||||
Спасибо, сейчас буду смотреть
Добавлено через 1 час 33 минуты Вообщем посмотрел и провел эксперименты. Работает криво. Для скрытия дочернего окна MDI-приложения, при этом чтобы не создавалась панелька (см. первоначальный вопрос этого топика) использую такой код:
это окно 1 спрячется с экрана, и при этом активизируется окно 2, которое было до этого не активно - все вроде бы хорошо, НО если попытаться свернуть окно 2, то вместо скрытие оно разворачивается на всю MDI-форму (максимизируется), если после этого окно 2 вновь попытаться свернуть, то оно свернется но почему-то вдруг появляется окно 1. Какой-то бред вообщем наступает. Почему так получается?
0
|
Супер-модератор
|
||||||
06.01.2013, 13:59 | 4 | |||||
Затем, что в MSDN написано:
0
|
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 47
|
|
06.01.2013, 20:28 [ТС] | 5 |
Да, я так попробовал - работает нормально (тоже самое и для WMSysCommand если его inherited убрать из else), НО возникает неприятное мельтешение, а именно если окно развернуто и мы его сворачиваем, то прежде чем оно исчезнет сначала появляется стандартная панелька при сворачивании (см. рис в начале топика), а уже потом вместе с дочерним окном прячется. Что делать?
0
|
0 / 0 / 0
Регистрация: 05.01.2013
Сообщений: 47
|
|
09.01.2013, 23:04 [ТС] | 6 |
Выявлена ещё одна проблема - ShowWindow(Self.Hande, SW_HIDE) скрывает только если Self.Active = True, в случае Self.Active = False оно не работает. Как выяснил:
Открывает в MDI-приложении окно1 максимизируем его, затем открываем окно 2 (оно автоматически максимизируется), затем сворачиваем окно2, а затем окно1, затем максимизируем окно 1 (через ShowWindow(Self.Hande, SW_SHOWMAXIMIZED), а теперь самое интересно когда мы начнем максимизировать окно2 (также через ShowWindow), то окно1 минимизируется почему-то (видать так работает MDI) и вот когда в WMSize этого окна приходит сообщение SW_MINIMIZED Self.Active=False и ShowWindow(Self.Hande, SW_HIDE) просто тупо не прячет окно и у нас в результате возникнет панельки (та что приведена в рисунке в начале топика). Как заставить ShowWindow(Self.Hande, SW_HIDE) работать при Self.Active = False?
0
|
09.01.2013, 23:04 | |
09.01.2013, 23:04 | |
Помогаю со студенческими работами здесь
6
Как заблокировать вызов нового дочернего окна пока не закрыто предыдущее в MDI parent form MDI: При вызове активного дочернего окна пункты его menuStrip отображались на menuStrip родителя Событие активации дочернего mdi окна Открытие дочернего окна в MDI приложении внутри вкладки TabControl Как выполнить ряд действий при сворачивании окна? При открытии дочернего окна, отображаются формы и кнопки с основного окна; как исправить? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |