Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
5 / 5 / 2
Регистрация: 03.05.2016
Сообщений: 221

Некорректное сохранение статуса тулбаров в реестре

27.07.2022, 16:34. Показов 1553. Ответов 5
Метки c++, mfc (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Пишу приложение на с++ для windows. Столкнулся с тем, что некоторые тулбары (члены производного класса от CMFCToolBar) некорректно сохраняются (они содержат в качестве члена класса указатель на CMFCToolBarComboBoxButton) - это выражается в том, что первый запуск (реестр пуст) происходит хорошо (как и закрытие приложения), а уже повторный вызывает ошибку, т.к. при загрузке статуса этих тулбаров (они содержат список) возникает ошибка, поскольку после загрузки данные тулбаров (указатель на CMFCToolBarComboBoxButton) заполняются мусором. В чём причина такого поведения?
Как проверить (выяснить) что сохранилось в реестр и почему данные видоизменяются?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.07.2022, 16:34
Ответы с готовыми решениями:

Сохранение положения тулбаров из прошлой сессии
Здравствуйте! Пишу приложение на с++ для windows. Пытаюсь выполнить сохранение сессии приложения автоматически, т.е. когда флаг...

Сохранение положения тулбаров из предыдущей сессии пользователя
Пишу приложение на MFC. Пользователь может поменять положение тулбаров, выйти из приложения, при повторном входе в приложение, положение...

Как реализовать сохранение массива в реестре?
Здравствуйте. Мне нужно реализовать сохранение и загрузку массива array_time при запуске программы в реестре. Массив array_time является...

5
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
28.07.2022, 00:51
Тринадцатую строку удалите, а в двадцатой строке добавьте звёздочку.
1
5 / 5 / 2
Регистрация: 03.05.2016
Сообщений: 221
28.07.2022, 10:04  [ТС]
Поясните пожалуйста ваш ответ
0
49 / 39 / 11
Регистрация: 24.07.2022
Сообщений: 117
28.07.2022, 12:01
Цитата Сообщение от MaximSergeevith Посмотреть сообщение
Поясните пожалуйста ваш ответ
Код покажите
0
5 / 5 / 2
Регистрация: 03.05.2016
Сообщений: 221
28.07.2022, 14:08  [ТС]
Весь код выложить не могу - проект коммерческий.
Могу приложить отдельные файлы

Проблемные тулбары - это CMComboBoxToolbar m_TemplateToolBar и CMComboBoxToolbar m_CalibrationToolBar.
Чтобы из - за них(их сохранения в реестре) не возникало ошибок, пришлось добавить виртуальный метод virtual void Serialize(CArchive& ar);// добавлено потому, что состояние m_ComboBox сохраняется в реестр некорректно
Вложения
Тип файла: 7z Новая папка.7z (30.3 Кб, 4 просмотров)
0
5 / 5 / 2
Регистрация: 03.05.2016
Сообщений: 221
01.08.2022, 12:14  [ТС]
Решил в итоге свои проблемы самостоятельно.
Для переопределённого класса class CMComboBoxToolbar : public CMFCToolBar добавлено

в .h файле
C++
1
2
3
    DECLARE_SERIAL(CMComboBoxToolbar)
 
    virtual void Serialize(CArchive& ar);
в .cpp файле
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
IMPLEMENT_SERIAL(CMComboBoxToolbar, CMFCToolBar, 1)
 
void CMComboBoxToolbar::Serialize(CArchive& ar)
{
    if (ar.IsStoring())
    {
        // Запись в реестр
        ar << this;//m_ComboBox;
        // TODO: add storing code here
    }
    else
    {
        // TODO: add loading code here
    }   
}
В итоге статусы тулбаров корректно сохраняются без лишнего кода
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.08.2022, 12:14
Помогаю со студенческими работами здесь

Сохранение записи в реестре при перезагрузке
Делаю так _tsetlocale(LC_ALL, _T(&quot;Russain&quot;)); _TCHAR szPath = _T(&quot;Software\\Classifiers\\&quot;); HKEY hKey; ...

Импорт csv. Некорректное сохранение
C помощью CSV Price Pro import/export импортирую базу данных товаров в формате csv. Проблема в том что после импорта все _ID_ товаров...

Происходит некорректное сохранение данных в файл !
В программе есть кнопка Button5 при ее нажатие данные с label5(выводиться среднее значение массива) должны заноситься в соответствующий...

Некорректное сохранение форм, принадлежащих формсету
Здравствуйте! формсет я задаю вот так: from django.forms import inlineformset_factory SelectVariants =...

Некорректное сохранение в БД из программно созданной формы
Добрый день! Простите новичка за, может, глупый вопрос. Я создаю новую форму взамен контекстного меню, функция формы - изменение...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru