Вопрос

Итак, у меня есть MFC основанное приложение, которое в основном получено из CDialog, с некоторыми элементами управления и т. д.

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

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

Класс контейнера для меня закрыт.Оно будет ожидать CView, но я могу изменить приложение на основе диалогового окна.

Есть ли простой способ перейти с CDialog основанный на CView на основе, и на что мне нужно посмотреть, пожалуйста.Я не очень разбираюсь в MFC, и вопрос может показаться расплывчатым, но это то, что у меня есть.

Любая помощь будет оценена по достоинству... Спасибо.

Это было полезно?

Решение

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

Проблемный код загружает и фиксирует данные в CFormView и из него.Представления обычно управляются CDocument, который вызывает UpdateAllViews с некоторыми подсказками.

Ваши диалоговые функции для OnOK, OnCancel и OnInitDalog необходимо изменить, чтобы они соответствовали архитектуре Doc/View.

  • Переместите код OnInitDialog в OnInitialUpdate, но имейте в виду, что в SDI-приложении OnInitialUpdate может вызываться более одного раза.
  • OnOK и OnCancel должны решаться какими-то вызовами и функциями из документа.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top