还是没有搞懂非模态对话框,请看看!
要销毁非模态对话框的时候,我看书上都要有一个指针要来判断非模态对话框销毁没有,设为NULL。但是我下面这样做,第一次运行的时候,是正常的,当再运行的时候就出现问题了。
void CDlView::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if (m_pTest==NULL)
{m_pTest=new CTest(this);
m_pTest->Create(IDD_DIALOG1,this);
m_pTest->ShowWindow(SW_SHOW); }
else
{
m_pTest->SetActiveWindow();
}
CView::OnLButtonDown(nFlags, point);
}
这是按左键 的时候弹出对话框的程序。m_pTest是指向CTest非模态对话框类的。
下面是当按非对话框类中的cancel键的程序:
void CTest::OnCancel()
{
// TODO: Add extra cleanup here
((CDlView*)GetParent())->m_pTest=NULL;
CDialog::OnCancel();
DestroyWindow();
}
CDlView是view类。
请高手指点。我觉得是不是((CDlView*)GetParent())->m_pTest=NULL;这句有问题?