我想你肯定用过oicq了,在它的主界面上双击一个人的头像,它就会弹出一个发送消息的窗口.我也想这么做,在我的主界面上双击一个人时也弹出一个对话框,我需要用非模态的对话框,因为当然要允许可以同时打开几个窗口,但是new了窗口对象后我该在什么时候,什么地方delete呢?我是这么弹出一个窗口的:
void cmydlg::ondoubleclick()
{
CMsgDlg* pmsgdlg;
pmsgdlg=new CMsgDlg(this);
pmsgdlg->Create(pmsgdlg->IDD);
pmsgdlg->ShowWindow(SW_SHOW);
pmsgdlg->UpdateWindow();
}
请大侠们能教我个想法

解决方案 »

  1.   

    可以在主窗口退出的时候delete另外,如果打开的窗口比较多,可以启动一个定时器,在定时器的处理过程中delete不再使用的窗口对象
      

  2.   

    在主窗口退出是DELETE
    如果你用VC.NET就不用担心释放多余的内存了。.NET可以自动释放。
      

  3.   

    CMsgDlg的POSTNCDESTROY()里面.
    void CMsgDlg::PostNcDestroy()
    {
    CDialog::PostNcDestroy();
    delete this;
    }
      

  4.   

    重载对话框的虚函数: PostNcDestroyvoid CMyDlg::PostNcDestroy() 
    {
    // TODO: Add your specialized code here and/or call the base class
    delete this;
    //CDialog::PostNcDestroy();
    }