//主菜單對象
CMenu * pMainMenu=AfxGetMainWnd()->GetMenu();
CMenu* pSubMenu=NULL;
//查找ID_TEST_HELLO
for(int i=0;i<(int)pMainMenu->GetMenuItemCount();i++)
{
pSubMenu=pMainMenu->GetSubMenu(i);
if(pSubMenu&& pSubMenu->GetMenuItemID(0)==ID_TEST_HELLO)
{
break;
}
}
//動態增加菜單
pSubMenu->AppendMenuW(0,ID_TEST_ADD1,L"動態增加1");
//在1後加另外2
pSubMenu->InsertMenuW(ID_TEST_ADD1,MF_BYCOMMAND,ID_TEST_ADD2,L"動態增加2");
//修改
pSubMenu->ModifyMenuW(ID_TEST_ADD2,MF_BYCOMMAND,ID_TEST_ADD3,L"動態修改3");
//刪除
pSubMenu->RemoveMenu(2,MF_BYPOSITION);
單選
void CModifyMenuDlg::OnRadio1()
{
// TODO: 在此添加命令處理程序代碼
m_mode=mode1;
}
void CModifyMenuDlg::OnRadio2()
{
// TODO: 在此添加命令處理程序代碼
m_mode=mode2;
}
void CModifyMenuDlg::OnUpdateRadio1(CCmdUI *pCmdUI)
{
// TODO: 在此添加命令更新用戶界面處理程序代碼
pCmdUI->SetRadio(m_mode==mode1);
}
void CModifyMenuDlg::OnUpdateRadio2(CCmdUI *pCmdUI)
{
// TODO: 在此添加命令更新用戶界面處理程序代碼
pCmdUI->SetRadio(m_mode==mode2);
}
複選
void CModifyMenuDlg::OnUpdateCheck1(CCmdUI *pCmdUI)
{
// TODO: 在此添加命令更新用戶界面處理程序代碼
pCmdUI->SetCheck(1);
}
觸發命令
AfxGetMainWnd()->SendMessage(WM_COMMAND,ID_FILE_OPEN);
彈出
CMenu menu;
menu.CreatePopupMenu();
menu.AppendMenuW(0,ID_TEST_POPU_1,L"1");
menu.AppendMenuW(MF_CHECKED,ID_TEST_POPU_2,L"2");
menu.AppendMenuW(MF_SEPARATOR,0,L"");
menu.AppendMenuW(MF_GRAYED,ID_TEST_POPU_3,L"3");
menu.CheckMenuRadioItem(ID_TEST_POPU_3,ID_TEST_POPU_4,ID_TEST_POPU_4,MF_BYCOMMAND);
menu.TrackPopupMenu(TPM_RIGHTBUTTON,point.x,point.y,this);
menu.DestroyMenu();
CDialog::OnRButtonDown(nFlags, point);