// 遍历菜单
void CTestDlg::OnBnClickedButton2()
{
CMenu* cMenuMain = GetMenu();
int cntMain = cMenuMain->GetMenuItemCount();
for(int i = 0; i < cntMain; i++)
{
CString menuName;
CMenu *cMenuSub = cMenuMain->GetSubMenu(i);
int cntSub = cMenuSub->GetMenuItemCount();
cMenuMain->GetMenuString(i, menuName, MF_BYPOSITION);
MessageBox(menuName);
for(int j = 0; j < cntSub; j++)
{
cMenuSub->GetMenuString(j, menuName, MF_BYPOSITION);
MessageBox(menuName);
}
}
}
// 获取状态与改变状态
void CTestDlg::OnBnClickedButton3()
{
CMenu* cMainMenu = GetMenu();
int cntMain = cMainMenu->GetMenuItemCount();
for(int i = 0; i < cntMain; i++)
{
CMenu* cSubMenu = cMainMenu->GetSubMenu(i);
int cntSub = cSubMenu->GetMenuItemCount();
for(int j = 0; j < cntSub; j++)
{
int flag = cSubMenu->GetMenuState(j, MF_BYPOSITION);
if(flag == MF_CHECKED) // 选择与未选中切换
cSubMenu->CheckMenuItem(j, MF_BYPOSITION | MF_UNCHECKED);
else if(flag == MF_UNCHECKED)
cSubMenu->CheckMenuItem(j, MF_BYPOSITION | MF_CHECKED);
else if(flag == MF_ENABLED) // enable与gray的切换
cSubMenu->EnableMenuItem(j, MF_BYPOSITION | MF_GRAYED);
else if(flag == MF_GRAYED)
cSubMenu->EnableMenuItem(j, MF_BYPOSITION | MF_ENABLED);
}
}
}