發布時間:2011-09-16 共2頁
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的話將不正常)
編輯特別推薦: