当我拖动由于DDX机制而通过MFC创建的对话框时应用程序崩溃

时间:2016-04-22 08:58:29

标签: c++ combobox mfc ddx

我能够修复我收到的错误,但我对错误背后的原因感兴趣。

我在我的一个方法中使用了我的组合框(使用DDX机制创建)指针作为参数。

例如:

bool CMyStuff::FillCombo(CComboBox* combo_ctrl)

但是我的组合框是通过拖放生成的,默认情况下MFC创建了一个对象而不是指针。因为我需要一个指向发送的指针,所以我将该成员变量更改为指针。

但是在此之后我得到了编译错误,因为DDX没有将指针作为输入。所以改变了我的DDX代码:

    DDX_Control(pDX, IDC_COMBO1, m_ptr_combo1);

    DDX_Control(pDX, IDC_COMBO1, *m_ptr_combo1);

现在应用程序已成功编译,当我启动应用程序时,对话框也已正确显示。 (注意:通常对话框将显示在桌面的中央,但这次显示在左上角)。

现在,当我拖动对话框或执行任何操作时,应用程序将崩溃。

当我更改整个声明并发送引用而不是指针时,我的应用程序正常工作。任何人都可以解释这种行为背后的原因吗?

0 个答案:

没有答案