Вставьте пользовательский интерфейс в другой диалог MFC - PullRequest
1 голос
/ 26 мая 2011

У меня есть одно приложение MFC (exe), которое содержит две панели в основном интерфейсе пользователя. Это приложение загружает другую DLL, которая также содержит одно диалоговое окно. Как я могу программно поместить Dialog, определенный в DLL, и поместить его (в пределах) панели приложения MFC? Вопрос не в том, как программно извлечь диалог из библиотеки DLL, а в том, как поместить этот диалог «сверху» (внутри, внутри) одной панели пользовательского интерфейса, которая принадлежит приложению?

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

Ответы [ 2 ]

1 голос
/ 31 мая 2011

Правильно ли я вас понимаю, что вы не хотите, чтобы диалоги отображались как диалоги, а скорее как содержимое другого окна или как панель?

Другими словами, вы хотите избавиться отстрока заголовка диалога и вставка содержимого диалога в другое окно, это верно?

Это возможно.Вам нужно будет создать диалоговое окно без строки заголовка (изменить стиль окна) и убедиться, что вы создали диалоговое окно как дочернее окно окна, в которое вы хотите поместить содержимое.Я могу объяснить это дальше, но сначала я хотел бы знать, правильно ли я вас понимаю.

1 голос
/ 29 мая 2011

У меня есть некоторые приложения с этой функцией, часто с элементом управления вкладками для переключения между окнами.

Сначала я установил рамку в окне контейнера, невидимую для пользователя. Рамка - это просто место, где будет находиться диалоговое окно.

Затем я создаю экземпляр диалогового окна как глобальную переменную в классе контейнера, создаю диалоговое окно как немодальное окно (используя Create(), а не DoModal()), перемещаю окно в то же самое RECT управления кадром, и вызовите ShowWindow(), чтобы показать окно.

...