我是写了一个浏览器,把收藏夹写入ini文件,初始化时,读一条记录,创建一个菜单,现在我是这样写的:ON_COMMAND(ID_MYMENU,PreTraslateMessage)  ON_COMMAND(ID_MYMENU+1 +2 +3(一直到10),PreTraslateMessage),也就是读出10条记录,都可以和消息处理函数关联,现在的问题是:
  怎么动态的创见这种关联,我现在最多只能把10个菜单项和消息处理函数绑定,如果,我ini里的记录有20条,那怎么办?而且我这样的消息和处理函数的关联,好像有问题,因为有时候,菜单项是灰色的,有时候,又能被选择,我也不知道为什么,我想动态的创建资源:读出一条记录,就创建一个菜单资源,然后和消息处理函数绑定,具体怎么做?能不能说的详细点。

解决方案 »

  1.   

    不需要用消息映射,直接重载CWnd::OnCommand 在里面做处理,可以在菜单弹出之前,动态创建菜单项,动态绑定ID,根据ID进行动态的函数处理调用.
      

  2.   

    我用的就是ON_COMMAND_RANGE,但是也是自己预估需要的数字,还是没有做到真正的动态,如果收藏夹超过100个那怎么办,我只设置了23个而已,其实和手动添加ON_COMMAND一样,不是动态的。