CMFCToolBar & amp; CMFCMenuBar не показывает динамические элементы по умолчанию

Я создал приложение MFC, которое использует CMFCToolBar и CMFCMenuBar. Он сохраняет свое состояние элементов в первый раз, когда я изменяю или добавляю какие-либо динамические элементы, я по-прежнему вижу первое состояние, в котором остаются удаленные элементы, добавленные элементы не отображаются, затем я обнаружил, что все элементы сериализуются в реестре и загружаются каждый раз, все наши приложения загружают динамические элементы меню или кнопки панели инструментов из модулей приложения, на самом деле я не мог заставить его работать, кроме как с помощью следующего решения

class CToolBarEx : public CMFCToolBar
{
public:
CToolBarEx()
{
}

virtual BOOL LoadState(LPCTSTR /*lpszProfileName*/ = NULL, int /*nIndex*/ = -1, UINT /*uiID*/ = (UINT) -1)  {   return FALSE;   }
virtual BOOL SaveState(LPCTSTR /*lpszProfileName*/ = NULL, int /*nIndex*/ = -1, UINT /*uiID*/ = (UINT) -1)  {   return FALSE;   }};
class CMenuBarEx : public CMFCMenuBar
{
public:
CToolBarEx()
{
}

virtual BOOL LoadState(LPCTSTR /*lpszProfileName*/ = NULL, int /*nIndex*/ = -1, UINT /*uiID*/ = (UINT) -1)  {   return FALSE;   }
virtual BOOL SaveState(LPCTSTR /*lpszProfileName*/ = NULL, int /*nIndex*/ = -1, UINT /*uiID*/ = (UINT) -1)  {   return FALSE;   }};

это был единственный способ, которым я мог бы использовать для добавления динамических элементов на панели инструментов или меню, но это не решение, я не пользуюсь инструментами настройки и сохранением позиций меню, это то, как Microsoft хочет, чтобы люди имели дело с меню и панелями инструментов? нажать на нее один раз, и изменения не допускаются? или я что-то упускаю по этому поводу?

0

Решение

К сожалению, так оно и работает, поскольку Microsoft выводит свои классы CMFC из инструментария BCG. У нас была такая же проблема в нашем приложении, и мы решили ее, обновив рабочее пространство (например, панели инструментов, пункты меню и т. Д.) Из мэйнфреймов учебный класс. Кроме того, мы решили сохранить состояние в XML-файле.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector