基于对话框的MFC程序->转到对话框->拖入TreeControl控件->右键树控件添加类(我以为这样的类是继承自CTreeCtrl的)->对应类的头文件查看
过程如下:
跟我的预期并不相符,基类中没有我想要的CTreeCtrl类,后面我发现在对话框的任意位置右键添加类都是这样的情况,所以我下结论:在对话框中右键添加类其基类都是和对话框相关的类(如CDialogEx之类).
后面经过请教,找到了正确添加MFC类的方法:右键项目名->类向导->添加类右边的下拉框选择MFC类->此时查看基类就可以看到所有的MFC类,添加的新类也就继承自想要继承的类.
归根结底还是对MFC和VS的用法不熟悉.
可以和VC 6一样用类向导,也可以点击视图类在右侧的类属性的消息中添加。自己写也可以,但是你的View需要对应你的视图类名,头文件函数声明和cpp中函数体都要写,还有一句消息响应。前2种方法都可以,不知道类向导是什么请去学习MFC基础。是否发现同一项目中只有自己的那个主界面对话框类使用类向导时才出问题而别的类也正常的?仔细分析有问题的对话框类的源文件,如果自己在资源编辑器中将对话框的ID改了,但是貌似修改却没有及时更新到对话框类的头文件中(可能是之前修改保存时程序突然退出而没有来得及更新)以至于二者不一样,这样就导致了使用类向导时,类向导从该头文件中读取并分析,加载打开实际上并不存在的对话框资源时出现“灾难性的错误”的。
如图所示:
将二者修改一致之后再通过类向导工具 *** 作就正常了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)