基于对话框的程序,主对话框打开了几个非模态对话框,我想按一个按钮,把那几个按钮都关闭,怎么做?

解决方案 »

  1.   

    如果没错的话
    你在这个按钮的事件函数里写上 
    CDialog::OnOK() ;或 OnCancel()就行了
      

  2.   

    可以用SendMessage方式
    如果你有那几个非模态对话框的指针:
     如m_Modless1.SendMessage(WM_CLOSE...)
      

  3.   

    再推荐两种
    1.EndDialog(0);
    2.DestroyWindow();
      

  4.   

    模式用EndDialog();
    非模式用DestroyWindow();(如果SendMessage WM_CLOSE 其实默认也是调用DestroyWindow();)
      

  5.   

    应该在OnDestroy函数中把它销毁,否则系统资源会被不知不觉的耗尽
    void CMainFrame::OnDestroy() 
    {
     if(m_dlg.GetSafeHwnd())
      m_dlg.DestroyWindow();
     CFrameWnd::OnDestroy(); 
    }