Как создать два окна (MDI + SDI) в MFC - PullRequest
0 голосов
/ 02 марта 2019

Мне нужно создать два разных типа окон, один MDI и один SDI в одном приложении.Я попытался создать приложение MDI с документом / представлением и поместил некоторые коды для создания окна SDI, но это не удалось.Кажется, MDI и SDI создаются с разным подходом, и я не знаю, как найти способ решить его.Кто-нибудь знает лучший способ сделать это?


После некоторых попыток мне удалось успешно создать SDI и окно MDI, но я не уверен, является ли это правильным способом.Вот как я это сделал

Создайте приложение SDI с помощью Visual Studio AppWizard, и я поместил следующий код для создания окна MDI, когда пользователь щелкает меню SDI Frame

CSDIFrame::OnClickCreateMDI()
{
CFrameWnd* pFrameMDI = new TestMDIFrameWnd;
CCreateContext Context;
Context.m_pNewViewClass = RUNTIME_CLASS(CTestMDIView);
if (!pFrameMDI->LoadFrame(IDR_TESTMDIFRAME, WS_OVERLAPPEDWINDOW, NULL, &Context)) {
AfxMessageBox("LoadFrame failed");
return FALSE;
}
pFrameMDI->InitialUpdateFrame(NULL, TRUE);
}

Isэто правильный способ сделать это?Можно ли использовать все методы программирования MFC в этом недавно созданном окне MDI так же, как это окно MDI создается с помощью AppWizard?Будут ли какие-либо ограничения (например, некоторые сообщения не могут быть отправлены в это окно MDI ...)

Спасибо.

1 Ответ

0 голосов
/ 07 марта 2019

После некоторых попыток и изучения книг MFC и исходного кода MFC я успешно создал окно MDI из окна SDI.Я могу добавить несколько документов нескольких панелей в MDI.И выход из приложения также ОК без каких-либо ошибок.Это непросто, есть некоторые сложные моменты, чтобы это произошло.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...