首页 > 解决方案 > MFC:Visual Studio 资源编辑器类向导在成员变量下没有所有控件 ID

问题描述

我遇到过几次,不记得上次我做了什么来修复它(可能从头开始)。这是我所做的:

我复制了一个现有CMFCPropertySheet对话框并粘贴为新对话框,然后将对话框 ID 编辑为 IDD_MINE,删除所有控件作为起始位置。接下来,我为此对话框添加了各种控件。

按照我想要的方式设置对话框后,我转到“添加类”并为对话框添加了一个类(选择基类CMFCPropertySheet)。完成后,它是不正确的(VS2017 从来没有为我做正确的属性表)。参考我正在工作的另一个属性表,我将缺少的 IDD_MINE 添加到构造函数和 AFX_DESIGN_TIME { enum IDD=IDD_MINE }。

设置好课程后,我就可以开始添加变量了。但是我注意到一些作为复选框的控件应该是一个单选按钮,所以我删除了它们,创建了单选按钮(按赞),然后从控件 ID 的下拉列表中选择现有的 IDC_ 名称(旧的复选框名称)。接下来,我尝试将第一个单选按钮添加为变量,但失败并出现以下错误:

你调用的对象是空的。

所以我转到对话框的类向导并查看“成员变量”选项卡。它列出了除单选按钮(和 -1 的 IDC_STATIC 项)之外的所有控件 ID。我尝试通过更改 IDC_ 名称来重命名单选按钮,但这并没有改变任何东西(退出程序等,仍然相同)。

那么有人知道我如何让可视化 stdio 资源编辑器/类向导与真正存在的控件同步,以便我可以使用向导添加它们吗?

蒂亚!!

编辑:

即使“成员变量”选项卡中存在的那些变量也不能与向导一起使用。未将相同对象引用设置为对象消息的实例

所以绝望,我手动添加了该功能:

virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

现在一切正常!!

巫师会自己处理这一切。

标签: visual-studio-2017mfcresource-editorclasswizard

解决方案


推荐阅读