MFC 单文档,如何截获并处理主菜单中某一项被点击(子菜单即将弹出)的事件?
如图所示:即点击菜单项“文件”所产生的事件,该菜单是一个下拉式菜单。我自己想到的可以根据鼠标左击事件做点击测试还有就是不做成包含有子菜单的菜单项,直接可以响应命令~...
如图所示:
即点击菜单项“文件”所产生的事件,该菜单是一个下拉式菜单。
我自己想到的可以根据鼠标左击事件做点击测试还有就是不做成包含有子菜单的菜单项,直接可以响应命令~ 展开
即点击菜单项“文件”所产生的事件,该菜单是一个下拉式菜单。
我自己想到的可以根据鼠标左击事件做点击测试还有就是不做成包含有子菜单的菜单项,直接可以响应命令~ 展开
3个回答
展开全部
例如你图上那个”自定义“,在资源编辑器中,设置”无弹出“,并设置ID为:ID_CUSTOM
然后在ClassWizard里面,选择View类,在列表中找到ID_CUSTOM,双击它,生成函数,编辑函数代码,比如只加一行:
AfxMessageBox(_T("测试菜单点击"));
即可。
然后在ClassWizard里面,选择View类,在列表中找到ID_CUSTOM,双击它,生成函数,编辑函数代码,比如只加一行:
AfxMessageBox(_T("测试菜单点击"));
即可。
追问
这是我说的第二种方法~
追答
你哪个是第一种?鼠标事件?这个没有研究意义。菜单是在窗口的非客户区,并且菜单本身不是窗口继承类。在非客户区判断鼠标点击不是不可以,而是MFC框架根本没有对该事件提供任何支持,你自己需要做的事情太多,还不如从头做省事(因为菜单本身无法获取位置,你需要一点一点计算),所以,这个就不和你讨论了,建议你也别想这个,事半功倍。
展开全部
先添加菜单栏的“自定义”菜单项的ID(比如ID_ZIDINGYI),再在MainFrame的cpp文件里面添加对应菜单项ID的ON_COMMAND(ID_ZIDINGYI,消息处理函数名)和ON_UPDATE_COMMAND_UI(ID_ZIDINGYI,消息处理函数名(比如OnUpdateZiDingYi))相关的消息映射,然后再到OnUpdateZiDingYi(CCmdUI* pCmdUI)函数里做相关处理,OnUpdateZiDingYi(CCmdUI* pCmdUI)这个函数即起到截获点击按钮事件的作用,截获点击以后处理逻辑就在该函数体里面写
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询