Angel Brisighelli Ответов: 1

Cmfctoolbarcomboboxbutton принести старые данные из реестра


Я добавил в свою программу ComboBox на панели инструментов с помощью пакета функций MFC. Я добился успеха с ним, и он работает. Текстовые параметры в выпадающем списке должны изменяться в соответствии с внешними факторами, поэтому при запуске проблем они могут быть "Вариант № 1", "Вариант № 2" и т. д. Или "вариант а", "вариант В" и т. д.

Моя проблема в том, что программа считывает содержимое CMFCToolBarComboBoxButton из реестра, всегда приносит последний набор опций, несмотря на то, что я загрузил другой, когда создавал CMFCToolBarComboBoxButton и делал ReplaceButton.

Если я удаляю реестр, он прекрасно работает в первый раз, но во второй раз снова загружает предыдущий набор текстов.

Есть ли какой-нибудь способ отключить эту функцию ? Я не нашел там никакой помощи

Я также проверил пример программы VisualStudioDemo, включенной в VS2010, и получил тот же результат. Я меняю текст строк, и он не появляется в выпадающем списке до тех пор, пока я не сброшу панель инструментов.

Любая помощь будет очень приветствоваться
Спасибо

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

Это резюме моего кода
{
...

CMFCToolBarComboBoxButton comboButton( ID_DESTINOS, GetCmdMgr()->GetCmdImage(ID_DESTINOS, FALSE), CBS_DROPDOWNLIST);

if( Set() == 1)
{
	comboButton.AddItem( _T("OPTION #1"));
	comboButton.AddItem( _T("OPTION #2"));
}
else
{
	comboButton.AddItem( _T("Diferent #A"));
	comboButton.AddItem( _T("Diferent #B"));
}

comboButton.SelectItem( 0);
m_wndToolBar.ReplaceButton( ID_DESTINOS, comboButton);

...

}

Richard MacCutchan

Этот код не соответствует описанию вашей проблемы.

1 Ответов

Рейтинг:
2

KarstenK

Ваш фрагмент кода немного беспокоит меня из-за локальной области действия кнопки. Используйте такой объект как указатель класса.

Таким образом, ваш заголовок должен включать в себя подобную строку:

CMFCToolBarComboBoxButton *m_ComboButton

Правильная обработка пользовательского интерфейса показана и обсуждается на этом сайте Обсуждение MSDN.

Убедитесь, что вы изменили панель инструментов после код загрузки.