Menu

动态修改Menu
 //主菜单对象
 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);



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值