关于mfc动态添加菜单的有关问题
关于mfc动态添加菜单的问题
有个右键菜单
先是在框架类中添加OnMENUappend响应,想如此来动态添加菜单,代码如下:
但是运行后点击没有效果,于是我在视类里面也添加了一个OnMENUappend(框架类的那个删掉了),代码不变,运行点击append.却发现出现错误:

另外要是使用insert插入菜单的话也会出现错误,而在框架类中没反应。 但是在框架类oncreate中用这两个函数的话却可以。
本人纯属菜鸟,希望各位给个详解。。 拜托~~
------解决方案--------------------
CMenu mm;
mm.CreatePopupMenu(); 右键菜单是弹出菜单,CreateMenu是顶层菜单
mm.AppendMenu(MF_STRING,ID_MM,"菜单项");
mm.Detach();
------解决方案--------------------
nGetMenuReturnId是右键选择的菜单id
有个右键菜单
先是在框架类中添加OnMENUappend响应,想如此来动态添加菜单,代码如下:
CMenu menu1;
menu1.CreateMenu();
GetMenu()->AppendMenu(MF_POPUP,(UINT)menu1.m_hMenu,"menubyappend");
menu1.Detach();
但是运行后点击没有效果,于是我在视类里面也添加了一个OnMENUappend(框架类的那个删掉了),代码不变,运行点击append.却发现出现错误:
另外要是使用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