例如在汉化时,如何修改所有的菜单上的文本。
不能用不同的菜单资源替换。在我的这个程序里不吃这一套。我也是接别人程序来做的。

解决方案 »

  1.   

    我的一段代码(如果能把ID和文本读出来,就更好了,可惜我没做)
    void CHouseView::OnAppStart() 
    {
    CString text;
    CMenu * pMenu=GetParent()->GetMenu();
    pMenu=pMenu->GetSubMenu(0);
    pMenu->GetMenuString(0,text,MF_BYPOSITION);
    if(text=="启动(&S)")
    {
    WinExec("J:\\Join.exe",SW_SHOW);
    pMenu->ModifyMenu(0,MF_BYPOSITION,ID_APP_START,"停止(&S)");
    }
    else
    {
    pMenu->ModifyMenu(0,MF_BYPOSITION,ID_APP_START,"启动(&S)");
    }
    }
      

  2.   


    CMenu* pMenu = AfxGetApp()->GetMainWnd()->GetMenu();
    for(int i = 0 ; i<pMenu->GetMenuItemCount( ) ; i++)
    {
      CMenu* pSubMenu = pMenu->GetSubMenu(0);
      for(int j =0 ; j < pMenu->GetMenuItemCount( ) ; j++)
        pSubMenu->ModifyMenu(j, MF_BYPOSITION | MF_STRING, pSubMenu->GetMenuItemID(j), text[i][j]);
    }其中,text中存放需要修改的文本