当前位置:编程学习 > VC++ >>

双击VC对话框提示cannot add new member的解决方法

双击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 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,