比方说在一个对话框中,我们动态地创建可变数量的 CWnds...就像每次用户做某事时创建和注册一个 CButton/
一些伪代码...
class CMyDlg : public CDialog
{
vector<CWnd *> windows;
void onClick()
{
CButton *pButton = new CButton(...);
//do other stuff like position it here
windows.push_back(pButton);
}
}
我需要显式删除它们还是 MFC 会这样做?如果我必须这样做,它会像往常一样在析构函数中,还是有任何特殊的事情来避免破坏 MFC ...确保我不删除对象,例如,当 HWND 仍在使用时?
最佳答案
CButton *pButton = new CButton(...);
这些是 C++ 对象,需要显式删除。 (其中主框架窗口和 View 是自毁的)。
详细答案可以引用(本人)Destroying Window Objects
关于c++ - MFC:删除动态创建的 CWnd 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2973085/