void CFrameWnd::Notify( TNotifyUI& msg ) { if( msg.sType == _T("click") ) { if( msg.pSender->GetName() == _T("btnMenu") ) { CPoint point(0, 0); GetCursorPos(&point); CMenuWnd* pMenu = CMenuWnd::CreateMenu(NULL, _T("menutest.xml"), point, &m_PaintManager, &m_MenuCheckInfo); //左侧打开菜单 //CMenuWnd* pMenu = CMenuWnd::CreateMenu(NULL, _T("menutest.xml"), point, &m_PaintManager, &m_MenuCheckInfo, eMenuAlignment_Right ); //左上侧打开菜单 //CMenuWnd* pMenu = CMenuWnd::CreateMenu(NULL, _T("menutest.xml"), point, &m_PaintManager, &m_MenuCheckInfo, eMenuAlignment_Right | eMenuAlignment_Bottom); // 先获取到根项,然后就可以使用rootMenu插到到菜单内的任意子菜单项,然后做添加删除操作 CMenuUI* rootMenu = pMenu->GetMenuUI(); if (rootMenu != NULL) { CMenuElementUI* pNew = new CMenuElementUI; pNew->SetName(_T("Menu_Dynamic")); pNew->SetText(_T("动态一级菜单")); pNew->SetShowExplandIcon(true); pNew->SetIcon(_T("WebSit.png")); pNew->SetIconSize(16,16); CMenuElementUI* pSubNew = new CMenuElementUI; pSubNew->SetText(_T("动态二级菜单")); pSubNew->SetName(_T("Menu_Dynamic")); pSubNew->SetIcon(_T("Virus.png")); pSubNew->SetIconSize(16,16); pNew->Add(pSubNew); rootMenu->Add(pNew); CMenuElementUI* pNew2 = new CMenuElementUI; pNew2->SetName(_T("Menu_Dynamic")); pNew2->SetText(_T("动态一级菜单2")); rootMenu->AddAt(pNew2,2); } // 动态添加后重新设置菜单的大小 pMenu->ResizeMenu(); } else if (msg.pSender->GetName() == _T("Menu_btn") ) { DUI__Trace(_T("你单击了按钮")); } } __super::Notify(msg); }