我在用ON_COMMAND_RANGE批量响应按钮消息后,出现一个很奇怪的问题,那就是无法为新建的按钮添加消息响应函数,vc会报错?新建的按钮的ID不在ON_COMMAND_RANGE的范围内而且头文件里面的消息响应函数的声明会自动复制,添加一次,报错一次,然后再复制一次!头文件会不停的增大,多次点击后居然会达到1M多!
将ON_COMMAND_RANGE相关的头文件声明注释后,即可添加新建的按钮的消息响应函数!这是为什么?
将ON_COMMAND_RANGE相关的头文件声明注释后,即可添加新建的按钮的消息响应函数!这是为什么?
解决方案 »
- 【求助】实现QQ面板/好友栏目
- VC6.0中能看.rc的源码吗?
- 请问
- 如何将字XML符串内容转换成所需要的对象? 有关字符串转换
- 请教超过255的ascii码!!!!
- 这样的图像大小的字节怎么计算啊???
- 一个关于继续控件的问题!要求如下:-----------提供思路和资料也可!up的下次吧(:
- 高手请进,关于组件注册问题???
- 在SDI程序中使用MSComm控件出现的问题
- 请指点:有关ado和动态链接库,告急!!!
- Unhandled exception (RAW2RGB.DLL):0xC0000005:Access Violation这个问题怎么解决呢
- 命名空间(namespace)和对象目录(DirectoryObject)具体的区别是什么呢?
BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd)
ON_COMMAND_RANGE(ID_COMMAND_RANGECMD1, ID_COMMAND_RANGECMD3, &CChildFrame::OnRangeCmds)
END_MESSAGE_MAP()void CChildFrame::OnRangeCmds(UINT nID)
{
CMenu* mmenu = AfxGetMainWnd()->GetMenu();
CMenu* submenu = mmenu->GetSubMenu(5);
submenu->CheckMenuRadioItem(ID_COMMAND_RANGECMD1, ID_COMMAND_RANGECMD3,
nID, MF_BYCOMMAND);
}不知道你是怎么写的
我的经验,要特别注意一下头尾两个ID_COMMAND_xxx的实际值,从resource.h里面,看看你要用这个函数响应的这些命令ID是不是连续的,如果一个是200,一个是20000,那中间所有ID都会被你这个函数响应,逻辑很可能就不对了。
仔仔细细的检查过,ON_COMMAND_RANGE范围内是连续的,新建的那个按钮是ON_COMMAND_RANGE范围外的