有一段别人的程序,我需要加点东西,却不能运行。在菜单拦上,有一个tools,点击tools,下拉菜单里会出现一些并列的菜单象,比如有菜单ID_CPC,ID_KNN,ID_LM......;
缺省情况是其中一个被check了。
有一个变量m_nModel,标示哪个被 check了,所以相应有IDS_CPC,IDS_KNN,IDS_LM......缺省是m_nModel=IDS_KNN.原来的程序是每点击某个菜单,他就被check了,原因是:void CSMDoc::OnToolsKnn() 
{
// TODO: Add your command handler code here
m_nModel=IDS_KNN;
CheckSubMenu();
}void CSMDoc::CheckSubMenu()
{
CMenu* pColorMenu = GetSubMenu(ID_TOOLS_RUN);
switch (m_nModel)
{
case IDS_CPC: 
pColorMenu->CheckMenuItem(ID_TOOLS_CPC, MF_CHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_LM, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_CWKNN, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_HCHR, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_VKNN, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_KNN, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_NB, MF_UNCHECKED); break;
case IDS_LM:
pColorMenu->CheckMenuItem(ID_TOOLS_CPC, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_LM, MF_CHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_CWKNN, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_HCHR, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_VKNN, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_KNN, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_NB, MF_UNCHECKED);
break;
// case IDS_CWKNN:
// pColorMenu->CheckMenuItem(ID_TOOLS_CPC, MF_UNCHECKED);
// pColorMenu->CheckMenuItem(ID_TOOLS_LM, MF_UNCHECKED);
// pColorMenu->CheckMenuItem(ID_TOOLS_CWKNN, MF_CHECKED);
// pColorMenu->CheckMenuItem(ID_TOOLS_HCHR, MF_UNCHECKED);
// pColorMenu->CheckMenuItem(ID_TOOLS_VKNN, MF_UNCHECKED);
// pColorMenu->CheckMenuItem(ID_TOOLS_KNN, MF_UNCHECKED);
//
// break;
case IDS_HCHR:
pColorMenu->CheckMenuItem(ID_TOOLS_CPC, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_LM, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_CWKNN, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_HCHR, MF_CHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_VKNN, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_KNN, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_NB, MF_UNCHECKED);

break;
// case IDS_VKNN:
// pColorMenu->CheckMenuItem(ID_TOOLS_CPC, MF_UNCHECKED);
// pColorMenu->CheckMenuItem(ID_TOOLS_LM, MF_UNCHECKED);
// pColorMenu->CheckMenuItem(ID_TOOLS_CWKNN, MF_UNCHECKED);
// pColorMenu->CheckMenuItem(ID_TOOLS_HCHR, MF_UNCHECKED);
// pColorMenu->CheckMenuItem(ID_TOOLS_VKNN, MF_CHECKED);
// pColorMenu->CheckMenuItem(ID_TOOLS_KNN, MF_UNCHECKED);
//
// break;
case IDS_NB:
pColorMenu->CheckMenuItem(ID_TOOLS_CPC, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_LM, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_CWKNN, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_HCHR, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_VKNN, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_KNN, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_NB, MF_CHECKED);

break;
default: pColorMenu->CheckMenuItem(ID_TOOLS_CPC, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_LM, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_CWKNN, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_HCHR, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_VKNN, MF_UNCHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_KNN, MF_CHECKED);
pColorMenu->CheckMenuItem(ID_TOOLS_NB, MF_UNCHECKED);

break;
}
}这样用IDS_XX 来表示该把哪个ID_TOOLS_XX check了,现在我想加一个并列的菜单ID_TOOLS_ED,但是却不知道在哪里定义IDS_ED,在.rc里有这样一段:
STRINGTABLE DISCARDABLE 
BEGIN
    IDS_MODEL               "Model"
    IDS_ANALYSE             "Analyse"
    IDS_CWKNN               "ID of cwknn"
    IDS_CPC                 "ID of CPC"
    IDS_LM                  "ID of LM"
END在resource.h里有所有的ID的定义
我可以在view->resource symbol里可以定义一个新的IDS_ED,但是却不管用,(not in use)不知道为什么?谢谢!