Здравствуйте, rus blood, Вы писали:
RB>1. Стиль WS_CHILD — это для окон, которые лежат внутри других окон. CFrameWnd создан для top-level окон, он с этим стилем работать не будет.
Спасибо за ответ

Убрал WS_CHILD, добавил SetParent — заработало... почти
При этом окно MDIFrame все равно лежит внутри главного окна — вроде как и должно при WS_CHILD — ну да это непринципиально
RB>2. В m_pMainWnd лучше оставить "главное" окно. Зачем ты кладешь
создаваемый фрейм в m_pMainWnd?
Попробовал щас поставить туда главное окно — вылет в OnFileNew по ассерту в winmdi.cpp ln 510 : ASSERT_KINDOF(CMDIFrameWnd, pMainWnd);
(при этом в OnFileNew поправил получение мейнфрейма по pMainWnd1)
придется, видимо, перед созданием child-ов, подменять pMainWnd типа
CWnd* p1=m_pMainWnd;
CMainFrame* pFrame = STATIC_DOWNCAST(CMainFrame, m_pMainWnd1);
m_pMainWnd=m_pMainWnd1;
CRuntimeClass* pCFrame=RUNTIME_CLASS(CChildFrmOpen);
pFrame->CreateNewChild(pCFrame, IDR_FBTYPE, m_hMDIMenu, m_hMDIAccel);
m_pMainWnd=p1;
если только при создании такая подмена нужна то это мелочь
RB>3. Стиль WS_CHILD тебе не нужен. Тебе нужно установить родителя pFrame->SetParent(m_pMainWnd); (где m_pMainWnd — это "главное" окно). А вообще, зачем это нужно? Заведи лучше отдельный массив для фреймов...
Массив будет, главное чтоб оно с одним хотя бы окном заработало. Идея в нескольких независимых наборах MDI окон