让我们在一个对话框中说,我们动态创建一个可变数量的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仍在使用时我不会删除对象?
答案 0 :(得分:3)
CButton *pButton = new CButton(...);
这些是C ++对象,需要显式删除。 (主框架窗口和视图是自毁的)。
您可以参考详细的答案(由我)Destroying Window Objects