MFC MDI добавить второй вид к документу - PullRequest
0 голосов
/ 06 июня 2019

это мой первый вопрос ... Мне нужна помощь, потому что я должен добавить второй вид в мой документ .. Я понятия не имею, что я могу сделать больше. Я пробую это с addView () и т.д ...

Кто-нибудь может мне помочь, пожалуйста?

PS: простите за мой плохой английский

Ответы [ 2 ]

1 голос
/ 06 июня 2019

Из реализации вашего класса документов:

CFrameWnd* pNewFrame=pDocTemplate->CreateNewFrame(this, NULL);
if (pNewFrame == NULL)  return;     // not created
// Optional - Set icon, if the default isn't OK
pNewFrame->SetIcon((HICON)LoadImage(AfxGetInstanceHandle(),  
    MAKEINTRESOURCE(nIDIcon), IMAGE_ICON, 16,16,LR_SHARED), FALSE);
pDocTemplate->InitialUpdateFrame(pNewFrame,this,TRUE);

pDocTemplate можно получить из вызова new CMultiDocTemplate() члена InitInstance() вашего класса CWinApp (просто сохраните его).

0 голосов
/ 07 июня 2019

Вам не нужно писать код, MFC делает это уже для вас.(Кликните на Window-New Window).Здесь переписан как метод для класса документов.

bool CMyDoc::AddSecondView()
{
  CMDIChildWnd* pActiveChild = ((CMDIFrameWnd*)AfxGetMainWnd())->MDIGetActive();    //

  CDocTemplate* pTemplate = GetDocTemplate();
  ASSERT_VALID(pTemplate);
  CFrameWnd* pFrame = pTemplate->CreateNewFrame(this, pActiveChild);
  if (pFrame == NULL)
  {
    return false;     
  }

  pTemplate->InitialUpdateFrame(pFrame, this);
  return true;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...