Вопрос
Итак, у меня есть MFC
основанное приложение, которое в основном получено из CDialog
, с некоторыми элементами управления и т. д.
По определенным причинам его необходимо разместить в другом приложении, используя класс контейнера, основанный на CView
.
Так что должен быть какой-то способ... разместить эту штуку, сделанный с использованием CDialog
, внутри класса контейнера, который ожидает объект как CView
.
Класс контейнера для меня закрыт.Оно будет ожидать CView
, но я могу изменить приложение на основе диалогового окна.
Есть ли простой способ перейти с CDialog
основанный на CView
на основе, и на что мне нужно посмотреть, пожалуйста.Я не очень разбираюсь в MFC, и вопрос может показаться расплывчатым, но это то, что у меня есть.
Любая помощь будет оценена по достоинству... Спасибо.
Решение
Вы можете использовать CFormView.Это представление, поддерживающее шаблоны ресурсов диалога.
Проблемный код загружает и фиксирует данные в CFormView и из него.Представления обычно управляются CDocument, который вызывает UpdateAllViews с некоторыми подсказками.
Ваши диалоговые функции для OnOK, OnCancel и OnInitDalog необходимо изменить, чтобы они соответствовали архитектуре Doc/View.
- Переместите код OnInitDialog в OnInitialUpdate, но имейте в виду, что в SDI-приложении OnInitialUpdate может вызываться более одного раза.
- OnOK и OnCancel должны решаться какими-то вызовами и функциями из документа.