按你的方法,打开文件对话框已变为非模态的了!
想向你请教:
    1.去掉对话框的边框:fileDlg->ModifyStyle(1,WS_BORDER);是这句吗?可是不行啊?
    2.我想通过点击父窗口的一个按钮,关闭这个对话框,用EndDialog(关闭模态的),DestroyDialog(关闭非模态的)都关闭不了??

解决方案 »

  1.   

    看看.1.貌似是把边框加上了-__-b
    2/调用OnCancel也关不了?
      

  2.   

    去边框在对话框的属性里就能做
    非模式的对话框,销毁时,需要对话框响应DestroyWindow,然后函数里delete this;
      

  3.   


    在WM_NCDESTROY中不是会自动delete堆上的对话框映射对象吗?
      

  4.   

    1.网上查的就这么写可是运行时出错!
    2.调用fileDlg->OnCancel();  fileDlg是MyCFileDialog的一个对象,MyCFileDialog继承自CFileDialog
    void MyCFileDialog::OnCancel()
    {
        CDialog::OnCancel();
    }
    不关闭,没反应!
      

  5.   

    1.这一个动态弹出的对话框,不是在资源管理器建的对话框
    2.应该算是模态的对话框,因为我DoModal()产生的,
    void CMyFileDialog::OnInitDone()
    {
        GetParent()->GetParent()->EnableWindow();
        CFileDialog::OnInitDone();
    }
    通过这个句修改了模式的属性!而且EndDialog,DestroyDialog,delete我都试了,都关闭不了
      

  6.   


    CFileDialog::OnCancel()呢?
      

  7.   

    1、fileDlg->ModifyStyle(WS_BORDER, 0);
    2、fileDlg->GetParent()->SendMessage(WS_CLOSE);
      

  8.   

    cnzdgs大侠!
    1.
    void CTabSheet::OnLButtonDown(UINT nFlags, CPoint point)
    {
     ...........部分代码省略.........
     if(fileDlg->GetSafeHwnd())   
      {   
         //MessageBox("该窗口已经显示,不能再次打开","提示",MB_OK);   
      } 
     else   
      {
         fileDlg->ModifyStyle(WS_BORDER,0); 
         fileDlg->DoModal();
      }  
    }
    这么加对吗?运行报错啊!
    2.
    报错'WS_CLOSE' : undeclared identifier 是不是需要什么头文件?程序的结构是这样:
    class CTabSheet : public CTabCtrl
    {
       ...........部分代码省略.........
    protected:
        MyCFileDialog* fileDlg;
    };
    class MyCFileDialog : public CFileDialog
      

  9.   

    1、加到派生的CFileDialog类的OnInitDone函数里面。
    2、我写错了,是WM_CLOSE。
      

  10.   

    第1点补充一下,前面不要加fileDlg->,直接写ModifyStyle(WS_BORDER, 0);
      

  11.   

    又错了,还得更正一下:
    1、parent->GetParent()->ModifyStyle(WS_BORDER, 0);
      

  12.   

    晕!
    GetParent()->ModifyStyle(WS_BORDER, 0);
      

  13.   

    cnzdgs大侠!十分感谢您对俺的帮助!
    我想把这个对话框挪一下位置!用下面的这句对吗?可是报错'hwnd' : undeclared identifierSetWindowPos(hwnd,0,290,270,0,0,SWP_NOSIZE);
      

  14.   

    fileDlg->SetWindowPos(0,290,270,0,0,SWP_NOSIZE);