void CDialogDlg::OnButton2()
{
// TODO: Add your control notification handler code here
CD2 dlg;
dlg.Create(IDD_DIALOG2,this);
dlg.ShowWindow(SW_SHOW);
dlg.Detach();
}
这样为什么不行呢?谢谢!
C语言
学分:0 LV1
TA的每日心情
2021-11-12 22:00:04
dlg.ShowWindow(SW_SHOW);
执行完后,马上执行dlg.Detach();
所以就不行了。
只有在关闭窗口时才能执行dlg.Detach();
删除dlg.Detach();就行了
学分: LV1
TA的每日心情
2021-02-18 09:29:08
你说的将dlg.Detach();语句去掉,这样更不行,dlg是局部变量,IDD_DIALOG2显示不出来。
我提出这个问题,是我对Detach的用法理解不了,书上说是“切断一个CWnd对象和一个有效窗口的联系”。
所以我在函数结束之前,将它们分离,使得局部变量生命周期的结束,不影响到窗口,结果却没成功。
帮我再想想,你们是高手,谢谢!!!