How do I rename the MFC ribbon panel? У меня есть связанная с этим проблема. Оригинальные подписи к ленте в ресурсе находятся в языке A. Я переводил все на языке B, включая имена панелей (используя метод, аналогичный предложенному в упомянутой теме). Но когда я сжимаю окно, чтобы некоторые из (или всех) панелей рухнули, их имена возвращаются к языку A. Когда я расширяю окно, имена панелей снова переводятся на язык B. Все еще не нашли решения. У кого-то появилась идея? :/EDIT: мы используем класс транслятора, который работает с флагами, поэтому в соответствии с флагом языка он преобразует строки, которые затем применяются к категориям, кнопкам и т. Д. Я создал свой собственный класс панели, который происходит из CMFCRibbonPanel. Я добавил этот метод:MFC Ribbon Panel name issue
void CRibbonPanel::setName(CString name)
{
m_strName = name;
}
Затем я делаю петлю, чтобы найти и изменить имя каждой панели в:
(CRibbonPanel*)thePanel->setName(theNewName);
Он отлично работает, но когда панели свернуты, их подписи вернуться на язык по умолчанию ,
Какой tranlsation вы используете ? Спутниковые DLL-файлы? – xMRi
Можете ли вы опубликовать код, который вы используете, чтобы переименовать панель? – thomiel
Нет, мы не используем спутниковые DLL, мы используем класс транслятора, который работает с флагами, поэтому в соответствии с флагом языка он преобразует строки, которые затем применяются к категориям, кнопкам и т. Д. Я создал свой собственный класс панели, который происходит от CMFCRibbonPanel. Я добавил этот метод: 'недействительные CRibbonPanel :: SetName (имя CString)' ' {' ' m_strName = имя,' ' }' Он отлично работает, но когда панели свернуты, их подписи вернуться к значениям по умолчанию язык. – Stoyanov