steffi123 Ответов: 0

Как изменить заголовок вкладки в приложении MDI tabbed document?


[^][^]Я создал приложение MDI Tabbed Document, используя приведенный ниже код

CMDITabInfo mdiTabParams;
mdiTabParams.m_style = CMFCTabCtrl::STYLE_3D_ONENOTE; // других стилей, доступных... mdiTabParams.m_bActiveTabCloseButton = True; // установим значение false, чтобы разместить кнопку Закрыть в правой части вкладки
mdiTabParams.m_bTabIcons = ложь; //значение true для включения иконки документа на MDI вкладок
mdiTabParams.m_bAutoColor = True; //установим значение false, чтобы отключить авто-колорит вкладки MDI
mdiTabParams.m_bDocumentMenu = истина;
EnableMDITabbedGroups (TRUE, mdiTabParams);

Как изменить заголовок каждой вкладки?По умолчанию каждая вкладка называется заголовком документа?Я хочу отобразить только часть имени документа в качестве заголовка вкладки, так как же этого добиться?
Я хочу установить разные имена для заголовка вкладки и документа.

Например,

Название документа Основная логика-STD PLC

Заголовок вкладки должен быть Основная Логика.

Я буду использовать это имя документа в заголовке фрейма

Что я уже пробовал:

Решение моей проблемы приведено в этой теме

https://social.msdn.microsoft.com/Forums/en-US/78c9a0dc-8bf4-4f07-8c0d-90cf6a5fbcb1/how-to-place-an-asterix-on-an-mdi-tabbed-document-window-to-indicate-that-the-document-was?forum=vcmfcatl[^]

void CiMyMDIChildFrame::OnUpdateFrameTitle(BOOL bAddToTitle)
{
   CiMyDoc* pDocument = STATIC_DOWNCAST(CiMyDoc, GetActiveDocument());
   CString sDocTitle;
   if (pDocument && !pDocument->GetTitle().IsEmpty() && pDocument->IsModified())
   {
      sDocTitle=pDocument->m_strTitle; //this requires CiMyDoc to friend class CiMyMDIChildFrame;
      pDocument->m_strTitle=pDocument->GetTitle()+"*";
   }
   CMDIChildWndEx::OnUpdateFrameTitle(bAddToTitle);
   if (!sDocTitle.IsEmpty()) pDocument->m_strTitle=sDocTitle;
}



Но класс CDocument m_strTitle является защищенным членом, поэтому я не могу использовать это решение.

0 Ответов