MFC: "склеивание" двух окон / диалогов вместе

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

Я попытался установить дочерние диалоги как имеющие основной диалог CWnd как родительский со стилем CHILD. Но затем они обрезаются родительской границей. Если я установлю их как POPUP, они могут быть снаружи, но не перемещаться вместе с родителем.

Я собираюсь поместить обработчик OnMove в родительский диалог, но есть ли что-то встроенное? И должны ли дочерние диалоги по-прежнему быть дочерними по отношению к основному диалогу ... Полагаю, они должны?

Это VS2005 (я думаю, что VS2008 имеет некоторые связанные функции, поэтому я упоминаю об этом).


person Mr. Boy    schedule 14.04.2010    source источник
comment
Что происходит, когда ваше главное окно развернуто?   -  person Mark Ransom    schedule 14.04.2010
comment
это не разрешено, это диалог фиксированного размера :)   -  person Mr. Boy    schedule 14.04.2010


Ответы (3)


Вам нужно реализовать движение вручную, когда они являются всплывающими окнами, и да, они должны быть всплывающими окнами, иначе они будут вырезаны.

person Roel    schedule 14.04.2010

Я новичок в ТАК. Не уверен, что могу сослаться на стороннюю статью. Думаю, это то, что вы ищете.

Я начал писать этот класс, потому что мне часто нужно открывать дополнительные диалоги вокруг основного. Часто эти диалоги могут доставлять неудобства пользователю; например, он должен перемещать / закрывать их один за другим ... Решение, которое могло бы придать приложению более солидный вид и которое могло бы упростить управление различными окнами, могло бы состоять в том, чтобы закрепить все диалоги рядом (например, Winamp делает, например).

person Jujjuru    schedule 15.04.2010
comment
Ответ должен содержать ровно столько статей, на которые есть ссылка, чтобы показать, почему он заслуживает того, чтобы быть ответом. Вы можете использовать функцию цитаты, если хотите скопировать часть ссылки. - person Mark Ransom; 15.04.2010

Как говорит Рул, ваши дополнительные диалоги должны быть всплывающими. Мне интересно: что это за UI? Это в стиле WinAmp, где окна привязаны друг к другу?

Или вы делаете какой-то расширяющийся диалог? Если это расширяющееся диалоговое окно (например, с кнопкой More>>), вы можете поместить все элементы управления в один и тот же диалог и поиграть с прямоугольником окна при отображении / скрытии дополнительных функций.

person Roger Lipscombe    schedule 14.04.2010
comment
Вроде как WinAmp. Я пока не могу решить, лучше ли это, чем увеличивать / уменьшать весь диалог по мере свертывания разделов - оба тестируются. - person Mr. Boy; 14.04.2010