Я создал приложение MFC, которое использует CMFCToolBar и CMFCMenuBar. Он сохраняет состояние первого элемента времени, когда я изменяю или добавляю какие-либо динамические элементы. Я все еще вижу первое состояние, когда удаленные элементы остаются там, добавленные элементы не отображаются, тогда я обнаружил, что все элементы сериализуются в реестре и загружаются каждый раз, все наши приложений загружать динамические пункты меню или кнопку панели инструментов из модулей приложения, на самом деле я не мог заставить его работать за исключением следующего раствором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 хочет, чтобы люди имели дело с меню и панелями инструментов? нажимать его один раз и никаких изменений не допускается? или я что-то пропустил?
Как сохранить состояние в каком состоянии? он сохраняет его в реестре прямо сейчас и загружает, но не видит никаких обновлений. Я просто хочу, чтобы обновления отображали новые изменения, пожалуйста, если вы решили эту проблему, сделайте ответ более понятным и предоставьте нам какой-то код или рекомендации. – ahmedsafan86
«Состояние» - это текущее позиционирование и включение всех панелей инструментов, меню, и т. д., которые в настоящее время определены для приложения. Вы можете думать об этом как о «профиле». У вас может быть много разных «состояний». Можно задать сохранение подмножества панелей инструментов. Всякий раз, когда панель инструментов добавляется, обновляется и т. Д., Мы вызываем метод savestate для сохранения состояния. Когда приложение открывается, состояние восстанавливается с помощью метода loadstate. Когда он закрыт, состояние сохраняется снова. Вам решать, как и когда вы хотите управлять состоянием объектов пользовательского интерфейса в своем приложении. – rrirower