none
无法执行添加/移除操作,因为代码元素“CXXXDlg”是只读的 RRS feed

  • 问题

  • 使用的MFC, 进行对话框操作时, 不知为什么, 在添加各种控件消息的时候就出现此错误.

    网上的方法都试过了,如:
    1、重启VC
    2、打开Resource.h文件看看 一看就知道了 有些定义重复了 可以手动改掉 保存 编辑器重新加载 。。。。。。。。
    3、关闭解决方案,删除ncb文件重新添加即可
    4、查看.h和.cpp文件的属性,有可能是只读的,修改属性后就可以

    没有一个有用(包括删除什么User文件).

    请教这是什么原因造成的? 如何真正能解决? 现在已经都手动来添加消息了.

    相信命运
    2009年5月4日 5:55
    版主

答案

全部回复

  • 还有一个可能,你打开了不止一个VC,而这些VC之间有共同的文件或工程.或者是其他应用程序打开了这个文件,这个文件被锁住了.
    你的VC是什么版本的?


    Hello world
    2009年5月4日 7:37
    版主
  • VS2008.

    仅打开了一个.


    但这个工程里,有些对话框是可以添加的. 看不出有何区别(自定义函数多些而已).
    相信命运
    2009年5月4日 8:38
    版主
  • 你好 虚拟闲人,

    我想知道你的意思是说在为dialog添加控件时发生错误还是为控件添加事件时发生错误?

    如果错误发生在你为dialog添加控件时,那问题应该出在resource里,你需要在解决方案管理器里右键rc文件->查看源代码,代码中你可以看到每个dialog及添加的控件的资源定义代码(包括像button的location, width, height等)。你可以检查一下这些代码有没有异常损毁。

    如果你是为控件添加事件如button click事件时发生错误,那你可以检查一下事件映射的代码。也就是BEGIN_MESSAGE_MAP下的事件注册有没有异常。

    希望能给你一点帮助。

    Sincerely,
    Kira Qian


    Please mark the replies as answers if they help and unmark if they don't.
    2009年5月4日 13:26
  • 首先确保代码没有编译错误,以及需要创建的消息映射不存在。然后看看http://social.msdn.microsoft.com/forums/en-US/vcgeneral/thread/0aa8e651-85cd-4e47-8718-ca45dcd64481/
    这里的几个BUG是否和你的问题是同样的问题。如果不是同一个问题而你又有可以持续重现问题的代码,可以到https://connect.microsoft.com/VisualStudio/feedback报告问题。


    MSMVP VC++
    2009年5月4日 22:13
    版主
  • 自己也遇到过.但关闭需要自动生成映射消息的文件就可以添加了.一直不能添加这样的问题还没遇到过.
    2009年5月5日 0:45
  • 能试的方法都试过了, .ncb, .suo, .user 都删除了, 编译也没有错误, 一直都手动来添加映射, 程序很正常.

    甚至我把BEGIN_MESSAGE_MAP 下的映射全部删除, 再重新添加, 同样的错误.


    痛苦地手动添加中.....

    相信命运
    2009年5月5日 1:39
    版主
  • 用process monitor看看有什么异常(文件不存在、访问被拒绝等等)
    MSMVP VC++
    2009年6月17日 17:56
    版主
  • 我也遇到此问题,但通过“关闭解决方案”并重新打开原项目成功解决不能添加按钮单击事件的问题。
    2010年4月1日 1:21