关于mfc动态添加菜单的有关问题

关于mfc动态添加菜单的问题
有个右键菜单关于mfc动态添加菜单的有关问题
先是在框架类中添加OnMENUappend响应,想如此来动态添加菜单,代码如下:
	CMenu menu1;
menu1.CreateMenu();
GetMenu()->AppendMenu(MF_POPUP,(UINT)menu1.m_hMenu,"menubyappend");
menu1.Detach();

     但是运行后点击没有效果,于是我在视类里面也添加了一个OnMENUappend(框架类的那个删掉了),代码不变,运行点击append.却发现出现错误:
关于mfc动态添加菜单的有关问题
另外要是使用insert插入菜单的话也会出现错误,而在框架类中没反应。 但是在框架类oncreate中用这两个函数的话却可以。   
        本人纯属菜鸟,希望各位给个详解。。 拜托~~ 

------解决方案--------------------
CMenu mm;
mm.CreatePopupMenu();  右键菜单是弹出菜单,CreateMenu是顶层菜单
mm.AppendMenu(MF_STRING,ID_MM,"菜单项");
mm.Detach();


------解决方案--------------------

CMenu menu;
menu.CreatePopupMenu();//声明一个弹出式菜单
strMenuNo.LoadString(IDS_NO_CATEGORY);
menu.AppendMenu(MF_STRING,IDC_MENU_NULL,strMenuNo);
CPoint pt = m_pt;
ClientToScreen(&pt);

if (m_Menu != NULL)
{
m_Menu->DetachMenu();
}
HMENU hMenu = menu.GetSafeHmenu();
m_Menu->AttachMenu( hMenu );
ASSERT(m_Menu);

int nGetMenuReturnId = m_Menu->TrackPopupMenu(TPM_LEFTALIGN 
------解决方案--------------------
 TPM_LEFTBUTTON 
------解决方案--------------------
 TPM_RETURNCMD, pt.x, pt.y, this);
switch (nGetMenuReturnId)
{
case (UINT)IDC_MENU_ALL:
             ...
        }

nGetMenuReturnId是右键选择的菜单id