代码是别人写的,他不在了,我现在在弄。按钮在对话框上,ID为IDC_EMPLOYEEINFO。我右键按钮,点添加消息响应函数,出现的是已经有了,函数名为:OnBnClickedEmployeeinfo直接双击按钮,也是进入了OnBnClickedEmployeeinfo的编辑区域。看上面的映射代码:也是ON_BN_CLICKED(IDC_EMPLOYEEINFO, &CRFMSDlg::OnBnClickedEmployeeinfo)但程序运行的时候,点击按钮后,却执行了OnBnClickedButton2。映射代码里面:ON_BN_CLICKED(IDC_BUTTON2, &CRFMSDlg::OnBnClickedButton2)经过检测RC,里面没有IDC_BUTTON2这个按钮。可能是把IDC_BUTTON2的ID名改成了IDC_EMPLOYEEINFO,但即便如此,怎么会执行到OnBnClickedButton2里面去呢?请高手指点。

解决方案 »

  1.   

    你查一下Resouce.h文件看看IDC_BUTTON和IDC_BUTTON2的值
      

  2.   

    在Resouce.h里IDC_EMPLOYEEINFO的值估计跟IDC_BUTTON2一样,并且ON_BN_CLICKED(IDC_BUTTON2, &CRFMSDlg::OnBnClickedButton2) 
    也在
    ON_BN_CLICKED(IDC_EMPLOYEEINFO, &CRFMSDlg::OnBnClickedEmployeeinfo) 
    前面。删除无用ID:IDC_BUTTON2及其映射。
      

  3.   

    对,在Resouce.h中把IDC_BUTTON2去掉
    然后去掉映射
      

  4.   

    不是漏洞,它可能开始的时候就用的IDC_BUTTON2,后来有在rc编辑器中修改了该button的ID,改成了IDC_EMPLOYEEINFO。
      

  5.   

    你修改过他的ID,.net编译工具是有这个问题,也可算成bug吧。就是说你用旧的ID生成事件后,再改ID,他不会给你自动把映射的那个ID改掉,且在Resource.H中还保留。而且值还与你新的ID一样。