对话框变量 - 没有添加到DoDataExchange()的条目

时间:2012-09-20 16:11:02

标签: c++ mfc dynamic-data-exchange

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

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

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

DDX_Check(pDX, IDC_PRINT_SUMMARY, m_bPrintSummary);

我收到了IntelliSense错误:

  

“int&”类型的引用(不是const限定的)不能使用“bool”类型的值初始化

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

2。如果DDX_Check()期望int &,为什么Class Wizards默认为bool键入复选框值?

1 个答案:

答案 0 :(得分:2)

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

BST_CHECKED - 选中按钮。

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

BST_UNCHECKED - 按钮已清除

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