CTestDialog *pTestDlg = new CTestDialog();
pTestDlg->Create(IDD_DIALOG_TEST, this);
pTestDlg->ShowWindow(SW_SHOW);
///下面三行错误
//CTestDialog dlg1;
//dlg1.Create(IDD_DIALOG_TEST, this);
//dlg1.ShowWindow(SW_SHOW);
为什么前三行不能用后三行代替?
用后三行,弹出的对话框闪了一下就消失了
用前三行能正确弹出对话框
原因: 看你这些代码放在哪啦,后三行如果在一个域的话,会析构的.析构就没了
Powered by Zoundry Raven
本文探讨了在C++中使用CTestDialog类创建对话框时遇到的问题。具体分析了局部变量与堆上分配对象的区别,解释了为何后者能正常显示而前者会立即消失的原因,并涉及对象的生命周期和析构问题。
2166





