0

我正在使用 Visual Studio 2019 并构建 C++ 桌面应用程序。我有一个从 CDialogEx 继承的对话框类。在这个类中,我有几个按钮,即 CButton 作为成员。当我在类构造函数中使用 EnableWindow 方法时,它会报告:

调试断言失败!程序 C:\WINDOWS\SYSTEM32\mfc140ud.dll 文件:d....\winocc.cpp 第 345 行

如果我将其注释掉,则应用程序运行良好。知道为什么我有这个错误吗?我想做的就是在对话框出现后立即禁用按钮——这就是我在构造函数中使用此方法的原因。

在此处输入图像描述

4

1 回答 1

0

C++ 类与对话窗口及其控件的实际创建是有区别的。

构造函数用于类相关项,而不是窗口相关项。例如,如果你想初始化成员变量,那么构造函数就是它的地方。但是在构建时,没有创建对话窗口,因此不存在子控件,因此您看到的错误。

您可以假设创建窗口的位置在对话框的OnInitDialog成员函数中。这是您应该能够调用EnableWindow控件的地方。

如果您没有OnInitDialog,您可以使用类向导添加该函数。

于 2020-05-07T02:28:06.560 回答