1

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

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

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

DDX_Check(pDX, IDC_PRINT_SUMMARY, m_bPrintSummary);

我收到 IntelliSense 错误:

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

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

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

4

1 回答 1

2

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

BST_CHECKED- 按钮被选中。

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

BST_UNCHECKED- 按钮被清除

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

于 2012-09-20T16:15:01.337 回答