MFC C — исчезло выпадающее меню с вкладками MDI

#c #mfc

#c #mfc

Вопрос:

Я изучаю MFC C и обнаружил проблему с меню с вкладками MDI. Даже мое приложение выполнено в стиле MDI, но я не вижу меню раскрывающегося списка списка документов. Пожалуйста, помогите мне! Заранее спасибо!

Я пытался изменить значения, CMDITabInfo но ничего не происходит…

 CMDITabInfo mdiTabParams;
mdiTabParams.m_style = CMFCTabCtrl::STYLE_3D_ONENOTE; // other styles available...
mdiTabParams.m_bActiveTabCloseButton = TRUE;      // set to FALSE to place close button at right of tab area
mdiTabParams.m_bTabIcons = FALSE;    // set to TRUE to enable document icons on MDI taba
mdiTabParams.m_bAutoColor = TRUE;    // set to FALSE to disable auto-coloring of MDI tabs
mdiTabParams.m_bDocumentMenu = TRUE; // enable the document menu at the right edge of the tab area
EnableMDITabbedGroups(TRUE, mdiTabParams);
 

введите описание изображения здесь

Комментарии:

1. Изображение, которое вы показываете, является выпадающим меню окна. Откройте больше дочерних окон, и их имена появятся в списке.

2. Дорогой Адриан Моул, большое вам спасибо за ваш ответ! Я открыл 10 вкладок, но меню по-прежнему не появлялось. Так странно, что я изменил значения CMDITabInfo, но ничего не обновляет даже m_style…

3. Вы пробовали использовать CMFCTabCtrl::EnableTabDocumentsMenu ? docs.microsoft.com/en-us/cpp/mfc/reference /…

Ответ №1:

В конце вашего CMainFrame::OnCreate вы можете написать:

 EnableMDITabs(TRUE, TRUE, CMFCBaseTabCtrl::LOCATION_TOP, TRUE, 
    CMFCTabCtrl::STYLE_3D_SCROLLED, FALSE, 
    FALSE);

CMFCTabCtrlamp; MFCTabCtrl = GetMDITabs();
MFCTabCtrl.EnableTabSwap(TRUE);
MFCTabCtrl.EnableTabDocumentsMenu(TRUE);
MFCTabCtrl.EnableAutoColor(FALSE);
 

Это обеспечит вам то, что вам нужно.

Комментарии:

1. Уважаемый Flaviu2, Большое вам спасибо за ваш ответ! Да, у меня есть эта функция внутри CMainFrame::onCreate(). Но это не сработало. Я создал новый проект, и теперь все в порядке.