对话框变量 -- 没有向 DoDataExchange() 添加任何条目

Dialog Box Variable -- No Entry Added to DoDataExchange()

本文关键字:添加 任何条 DoDataExchange 变量 对话框      更新时间:2023-10-16

在 C# 工作多年后,我又回到了我编写的旧 MFC 应用程序。但看起来我需要复习一些事情。

我向现有对话框添加了一个复选框控件。然后,我使用类向导添加了一个类型为 bool 的非控制变量。变量是按预期创建的。

但是,我没有看到任何条目添加到DoDataExchange()方法中。当我尝试手动添加它时:

DDX_Check(pDX, IDC_PRINT_SUMMARY, m_bPrintSummary);

我收到智能感知错误:

类型为"int &"(非 const 限定)的引用不能使用类型为 "bool" 的值进行初始化

1. 为什么在添加变量时没有为我创建DoDataExchange()条目?

2. 如果DDX_Check()期望和int &,为什么类向导默认键入bool作为复选框值?

复选框可以是三个值之一,因此需要 int。

BST_CHECKED - 按钮处于选中状态。

BST_INDETERMINATE - 按钮灰显,表示不确定状态(仅当按钮具有BS_3STATE或BS_AUTO3STATE样式时才适用)。

BST_UNCHECKED - 按钮已清除

至于为什么它不能自动编辑DoDataExchange,这可能是您类的C++格式问题。