双击VC对话框提示cannot add new member的解决方法
2012-12-04 06:53
423 查看
双击VC对话框提示cannot add new member的解决方法
当我们为vc对话框上的控件添加事件时,不知道大家没有像我一样在双击控件,为其添加响应函数时,出现cannot add new member这样的提示信息,我想,可能有朋友遇到过。只要出现这种情况,那么在该对话无论你怎么点击都会出现上面的提示信息。
当然我也到网上看了下,虽然大家说法不一,但我想应该也都是正确的,不然不会乱写的,只是客观环境不同而已。好了,下面我们说说大致的解决方法。
1.:如果出现这种情况,我们可以先把工程给关闭,然后删除 *.clw文件,然后再打开工程,并按CTRL+W打开ClassWizard,这里我们输入先前删除的文件的文件名,然后点确定,便可重新生成一次*.clw文件。(注意:这里的*代码你的工程,如:我的工程叫Test,那么我们就应该删除Test.clw文件),这里如果顺序的进行ClassWizard页面的话,那么上面的问题上就解决了。
2.如果断续出现类似Canot find header file for class 等提示信息(我今天就出现了这样的信息),如果此时所提示的类确实在存在,那么我们就需要去到该提示文件中去查找类和资源ID的关联是否有问题(当然在这里十有八九都有问题),今晚我的主要问题也就出现在这个地方,本来是为ID为IDD_BUS_CONSIGN的对话框资源关联的CBusConsignView类,由于在
//{{AFX_DATA(CBusConsignView)
enum { IDD = IDD_BUS_CONSIGN };
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA
中把CBusConsignView类错误的写CBusConsign,所以一直就出现如上所示的情况。
在这个地方,大部分朋友可能都会像我一样,认为
//{{AFX_DATA(CBusConsignView)已经被注释掉了,所以写什么东西都不会有什么影响,其实不然,在这里我们的类名一定要写正确,否则在带有你的想当然的主观意识在里面的情况下,很难发现这样的错误的。
总结一下:
出现这样的错误的主要原因是没有为资源关联的一个类,如果关联了,那么可能是某个地方写错了,所以只要大家仔细检查一下此该资源相关的类,是可能解决这样的问题的。
注意:我在重复了上述过程几次后才发现,只有先把所有的地方都改掉,特别是上文提到的那几个注释地方,然后再关闭工程,然后再重建CLW文件,才可以。
*我导致出现这个错误的原因是,我一时不小心把MFC的命名规则搞错了,于是只好重新修改了类名,编译和调用都是成功的,可是后来增加新的函数时出现这个问题。其中有几个窗口是好的,主窗口几个是不好的。没办法,手有点生。
另外:有时候儿删除了一个对话框上的控件后,再编译时报那个控件ID没定义,这时有两种方法,一是到RC文件里删除那个ID,这个大多数情况下是可以解决问题的,但有时候儿不行,那么只能采用第二种情况,删除CLW,NCB,(VS2005等高版本一样),这样再打开重新编译链接就OK了.
当我们为vc对话框上的控件添加事件时,不知道大家没有像我一样在双击控件,为其添加响应函数时,出现cannot add new member这样的提示信息,我想,可能有朋友遇到过。只要出现这种情况,那么在该对话无论你怎么点击都会出现上面的提示信息。
当然我也到网上看了下,虽然大家说法不一,但我想应该也都是正确的,不然不会乱写的,只是客观环境不同而已。好了,下面我们说说大致的解决方法。
1.:如果出现这种情况,我们可以先把工程给关闭,然后删除 *.clw文件,然后再打开工程,并按CTRL+W打开ClassWizard,这里我们输入先前删除的文件的文件名,然后点确定,便可重新生成一次*.clw文件。(注意:这里的*代码你的工程,如:我的工程叫Test,那么我们就应该删除Test.clw文件),这里如果顺序的进行ClassWizard页面的话,那么上面的问题上就解决了。
2.如果断续出现类似Canot find header file for class 等提示信息(我今天就出现了这样的信息),如果此时所提示的类确实在存在,那么我们就需要去到该提示文件中去查找类和资源ID的关联是否有问题(当然在这里十有八九都有问题),今晚我的主要问题也就出现在这个地方,本来是为ID为IDD_BUS_CONSIGN的对话框资源关联的CBusConsignView类,由于在
//{{AFX_DATA(CBusConsignView)
enum { IDD = IDD_BUS_CONSIGN };
// NOTE: the ClassWizard will add data members here
//}}AFX_DATA
中把CBusConsignView类错误的写CBusConsign,所以一直就出现如上所示的情况。
在这个地方,大部分朋友可能都会像我一样,认为
//{{AFX_DATA(CBusConsignView)已经被注释掉了,所以写什么东西都不会有什么影响,其实不然,在这里我们的类名一定要写正确,否则在带有你的想当然的主观意识在里面的情况下,很难发现这样的错误的。
总结一下:
出现这样的错误的主要原因是没有为资源关联的一个类,如果关联了,那么可能是某个地方写错了,所以只要大家仔细检查一下此该资源相关的类,是可能解决这样的问题的。
注意:我在重复了上述过程几次后才发现,只有先把所有的地方都改掉,特别是上文提到的那几个注释地方,然后再关闭工程,然后再重建CLW文件,才可以。
*我导致出现这个错误的原因是,我一时不小心把MFC的命名规则搞错了,于是只好重新修改了类名,编译和调用都是成功的,可是后来增加新的函数时出现这个问题。其中有几个窗口是好的,主窗口几个是不好的。没办法,手有点生。
另外:有时候儿删除了一个对话框上的控件后,再编译时报那个控件ID没定义,这时有两种方法,一是到RC文件里删除那个ID,这个大多数情况下是可以解决问题的,但有时候儿不行,那么只能采用第二种情况,删除CLW,NCB,(VS2005等高版本一样),这样再打开重新编译链接就OK了.
相关文章推荐
- 双击VC对话框提示cannot add new member的解决方法
- 双击VC对话框提示cannot add new member的解决方法
- 双击VC对话框提示cannot add new member的解决方法
- 编程技巧之:双击VC对话框提示cannot add new member以及类向导中没有已经建立的类的解决方法
- 双击VC对话框提示cannot add new member的解决
- 右击 对话框资源 事件,提示cannot add new member的解决方法
- VC++中,提示cannot add new member的解决方法
- VC++中,提示cannot add new member的解决方法
- VC++中,提示cannot add new member的解决方法
- cannot add new member的解决方法
- MFC工程中, 双击按钮,无法进到响应函数,提示“cannot add new member”
- 解决vc++ cannot add new member
- "cannot add new member"解决方法
- cannot add new member in VC++
- vc6.0出现“cannot add new member”解决办法
- MFC双击按钮之后出现“cannot add new member”
- vc6.0出现“cannot add new member”解决办法
- 编译安装php时提示Cannot find MySQL header files的解决方法
- 编译boost程序出现如下错误fatal error LNK1104: cannot open file 'libboost_system-vc100-mt-gd-1_54.lib'的解决方法
- 重要!当打开MMC或者inetmgr时提示“Cannot Open xxx.msc”,就用以下解决方法,安装至少MSXML3SP4然后重起就解决问题。