一般一个菜单项会对应一个响应函数.但我现在想让多个菜单项,只对应一个响应函数,在响应函数里面根据菜单项的ID作出不同的响应.请问应该怎么做.应该不会很难.但我一时想不起应该怎么做.请高人指点一下.

解决方案 »

  1.   

    我已经实现了,看看大家还有没有什么特别点的方法,我是用重载PreTranslateMessage实现 的.
    有不同意见的,就能拿分了.
      

  2.   

    1 在MainFrm.cpp文件中定义宏ON_COMMAND_RANGE:
    BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
    //{{AFX_MSG_MAP(CMmDlg)
    ......
    //}}AFX_MSG_MAP
    ON_COMMAND_RANGE(ID_MENU1,ID_MENU2,ID_MENU3,OnMenus)
    END_MESSAGE_MAP()
    2 在MainFrm.h头文件中定义处理函数:
    //}}AFX_MSG
    afx_msg void OnMenus(UINT nID);
    DECLARE_MESSAGE_MAP()
    3 在MainFrm.cpp文件中增加消息处理函数:
    void CMainFrame::OnMenus(UINT nID)
    {
    //这里根据nID不同自己处理
    }