我有个菜单有20~30多个子项,要是每个都做个响应的话要大量响应函数,我想了个办法,这些子项全部响应一个函数OnAllMenu()
然后在这个函数中判断菜单ID是哪一个,但是当我写到判断时,才发现,这个响应函数没参数我怎么判断,我试着给这个函数加上了wParam,lParam,但是编译器报错。求救啊,怎么让菜单响应函数带参数,或者是怎么在响应函数中得到触发该消息的菜单ID???

解决方案 »

  1.   

    就是他
    看看这个
    http://zhidao.baidu.com/question/150022824.html
      

  2.   

    ON_COMMAND_RANGE 中的ID必须是连续的,
    如果不是连续插入的菜单项的话,最好是定义个静态数组,重载OnCommand,用循环来判断比较灵活
      

  3.   

    我ID不是连续的,谁能给个具体的代码。比如我现在要响应IDM_A,IDM_B,IDM_D,IDM_E这几个菜单项
      

  4.   

    建议还是用ON_COMMAND_RANGE吧,ID不连续可以自己去resource.h中去手工改,毕竟改ID比较方便。
      

  5.   

    我真的不想改啊,我ID是和某些bitmap资源ID一样的,如果要改就会把bitmap资源也改了,我有20多个*2,40个要改,改到什么时候啊,有没有什么其他方法,如果实在没,我就只能改了,55555
      

  6.   

    重载虚函数
    CWnd::OnCommand不关系的执行父类的就可以了
      

  7.   

    代码层都用宏定义,改resource还是挺方便的