Я использую классы MFC, но нестандартным способом (т.е. вообще не использую производный класс CDocument).
Как бы то ни было, у меня есть несколько представлений, полученных из CFormView, и есть переменные-члены класса.
У меня есть код, который использует производный класс от CMiniFrameWnd, и это похоже на
CCreateContext context;
context.m_pNewViewClass = RUNTIME_CLASS(CImageView);
context.m_pCurrentDoc = NULL;
CView* pNewView = STATIC_DOWNCAST(CView, CreateView(&context));
if (pNewView != NULL)
{
pNewView->ShowWindow(SW_SHOW);
pNewView->OnInitialUpdate();
SetActiveView(pNewView);
}
// save view
Но загвоздка в том, что CreateView () вызывает конструктор CImageView по умолчанию, а OnInitialUpdate (), являющийся виртуальным переопределением, должен совпадать с сигнатурой CView ().
Так как мне инициализировать данные члена, принадлежащие CImageView?
CreateView () и OnInitialUpdate () мешают (если я что-то упускаю). Кажется, что производные классы от CView или CFormView не легко инициализируются в архитектуре MFC.
Спасибо