在菜单View下添加选项test,test按下后弹出非模态对话框IDD_DIALOG1
在程序的View类中加入View/test的处理函数
class CCai1View : public CScrollView
{
// Attributes
public:
CModelless* m_pModelless;
}CCai1View::CCai1View()
{
m_pModelless=NULL;
}
void CCai1View::OnViewTest() 
{
// TODO: Add your command handler code here
if(m_pModelless==NULL)
{
m_pModelless=new CModelless;
m_pModelless->Create(IDD_DIALOG1,this);
m_pModelless->ShowWindow(SW_SHOW);
}
else
m_pModelless->SetForegroundWindow();
}
当单击对话框IDD_DIALOG1中“确定”button后,我想这时删除指针m_pModelless,如何实现?

解决方案 »

  1.   

    重载对话框的WM_NCDESTROY,在此消息中delete this;
      

  2.   

    可以直接调用delete m_pModelless;因为在对话框析构中调用了DestroyWindow()
      

  3.   

    在对话框的处理程序中加入:
    void CModelless::OnOK() 
    {
    DestroyWindow(); 
    }
    void CModelless::PostNcDestroy() 
    {
    // TODO: Add your specialized code here and/or call the base class
    delete this; CDialog::PostNcDestroy();
    }
    为什么还是不行呢?
      

  4.   

    你的这个dialog类不是通过classwizard可以添加OnDestroy()函数的吗?在那里面删除想删的指针就行了,退出的时候调用DestroyWindow()--同意楼上的
      

  5.   

    void CModelless::OnOK() 
    {
        delete m_pModelless;
    }