在项目中遇到要修改ribbon panel的标题为别的语言,可是在MSDN上查找发现CMFCRibbonPanel这个类下没有修改caption的函数,而且ribbon panel没有自带ID,困扰许久,看到一篇帖子说用修改自带变量的方法可行。具体看了一下,因为CMFCRibbonPanel有个GetName()函数,则得到的字符串一定在某个变量存储,寻找源头发现标题caption在m_strName这个变量中保存,遂定义一个CMFCRibbonPanel的子类,来通过对子类中m_strName的修改达到改变Panel标题的目的。代码如下,先声明一个子类
class MyRibbonPanel:public CMFCRibbonPanel
{
public:
MyRibbonPanel();
~MyRibbonPanel();
// MyRibbonPanel(LPCTSTR lpszName = NULL, HICON hIcon = NULL ) : CMFCRibbonPanel(lpszName, hIcon) {};
void SetPanelName(CString name);
};
再对这个子类的setpanelname函数进行定义,这里的定义一定不要放在头文件里,因为我刚刚开始编程没有经验,经常把定义放在头文件,这样头文件被多个cpp调用时就会出现多次定义等问题。
void MyRibbonPanel::SetPane