Динамическое изменение статической текстовой подписи CMFCRibbonEdit с помощью MFC (Microsoft Foundation Class) и C++
У меня возникли проблемы с попыткой обновить заголовок (текстовый элемент) поля редактирования в MFC.
Ниже. это то, что я сейчас пробовал. Я знаю, что выбираю правильный элемент, потому что вижу, что всплывающая подсказка изменилась. Текст заголовка рядом с полем редактирования просто становится пустым
* Обновление: после дальнейшего сотрудничества со старшим программистом мы обнаружили, что это, скорее всего, ошибка MFC. Я бы хотел оказаться неправым, потому что обходной путь включает в себя разделение поля редактирования на метку и поле, что далеко не идеально из-за проблем с выравниванием.
CMFCRibbonBaseElement* pEditBox = (CMFCRibbonBaseElement*)m_wndRibbon.FindByID(EDIT_BOX_ID);
pEditBox->SetText(_T("new Text"));
pEditBox->SetToolTipText(_T("tool tip text"));
С помощью отладчика я также вижу, что m_strText, который в данном случае является заголовком, изменяется. Я пропустил шаг, на котором мне нужно повторно отобразить текст, чтобы он появился? Единственное, что я мог придумать, это вызвать pEditBox->Redraw(); после установки текста, но это ничего не дало.
Другой подход, который я пробовал ниже, заключался в использовании SetText в функции обновления, но это просто меняет текст в поле, а не заголовок. Я подумал, что это может сработать, потому что я смог изменить текст рядом с флажком, используя этот подход.
ON_UPDATE_COMMAND_UI(EDIT_BOX_ID, &CMyDoc::OnUpdateEditBoxText);
void CMyDoc::OnUpdateEditBoxText(CCmdUI *pCmdUI)
{
if (//my condition)
pCmdUI->SetText(_T("new Text"));
}
Другой подход, который я мог бы использовать, - это просто убрать поле, но pEditBox->SetVisible(FALSE); также не работает для этого поля редактирования.