C++ C++;MFC创建新对话框和添加组合框项

C++ C++;MFC创建新对话框和添加组合框项,c++,combobox,mfc,C++,Combobox,Mfc,我正在使用MFC构建一个带有两个对话框的应用程序。 当我按下父对话框中的一个按钮时,应该会出现一个包含组合框的新窗口 我创建了第一个带有“新建”按钮的对话框。此按钮将打开第二个对话框。 因此,我创建了第二个带有组合框的对话框。组合框有一个链接变量variableCombobox。第二个类称为cssecond 在新建对话框中执行任何操作之前,我想向组合框中添加一项。 在第一个对话框类中,我创建了如下新窗口: void CFirstDlg::OnBnClickedNew() { CSecon

我正在使用MFC构建一个带有两个对话框的应用程序。 当我按下父对话框中的一个按钮时,应该会出现一个包含组合框的新窗口

我创建了第一个带有“新建”按钮的对话框。此按钮将打开第二个对话框。 因此,我创建了第二个带有组合框的对话框。组合框有一个链接变量
variableCombobox
。第二个类称为
cssecond

在新建对话框中执行任何操作之前,我想向组合框中添加一项。 在第一个对话框类中,我创建了如下新窗口:

void CFirstDlg::OnBnClickedNew()
{
    CSecond dlg2 = new CSecond();
    dlg2.variableCombobox.AddString(L"test");
    dlg2.DoModal();
}
程序在我要将
test
字符串添加到显示断言错误的组合框的行中崩溃。 我注意到
dlg2
对象是
null
,但我不知道为什么


有人能告诉我如何立即创建第二个窗口并在第二个窗口的组合框中添加新项吗?

问题是第二个对话框是一个模式对话框。在调用
DoModal()
之前,窗口不存在,在该函数返回之后,窗口不再存在。因此,在组合框上调用
AddString
是不合适的,因为当时组合框不存在


解决方案是使用所需的值初始化对话框(例如,在构造函数或其他方法中),然后在
OnInitDialog()
中使用这些值设置控件(包括对组合框的
AddString
的调用)。

您的代码看起来不正确。”新建一个类将返回一个指针。您尚未将“dlg2”声明为指针。感谢您的回复。我将行更改为cssecond*dlg2=new cssecond();和dlg2->而不是dlg2。。。我仍然知道是谁干的。感谢您的快速回复和解决方案