通过ini实现多语言菜单
来源:优易学  2010-1-14 11:22:20   【优易学:中国教育考试门户网】   资料下载   IT书店

 

  CString cs = AfxGetApp()->GetProfileString("menu",strText,strText);//读取菜单项在ini里的文字

  menu->ModifyMenu(i,MF_STRING|MF_BYPOSITION,id,cs);

  //   下面这行可有可无,用这个免得我们手工编辑ini,发布的版本里注释掉

  AfxGetApp()->WriteProfileString("menu",strText,cs);

  CMenu* pSub = menu->GetSubMenu(i);

  InitMenu(pSub);//递归,遍历popup菜单

  }

  else

  {

  CString strText;

  menu->GetMenuString (i, strText, MF_BYPOSITION);

  CString cs = AfxGetApp()->GetProfileString("menu",strText,strText);

  menu->ModifyMenu(i,MF_STRING|MF_BYPOSITION,id,cs);

  //   下面这行可有可无,用这个免得我们手工编辑ini,发布的版本里注释掉

  AfxGetApp()->WriteProfileString("menu",strText,cs);

  }

  }

  }

  函数的调用:

  在CMainFrame::OnCreate的中填加上

  //multi language menu

  CMenu* pMenu = GetMenu();

  InitMenu(pMenu);

  至此通过ini实现多语言菜单结束了。

  具体可以看演示程序。

  menu.ini中储存着每个菜单项的文字,你只需要修改值就可以改换菜单语言。

  上面程序的不足:

  没能修改Prompt的文字(就是在状态栏上显示的提示)

  没能显示快捷键(菜单的为new\tCtrl N的话将不正常)

上一页  [1] [2] [3] 

责任编辑:cyth

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训