我用MFC向导生成的应用程序,图视类是CView派生的,多文档应用程序。
我想在菜单上建一个按钮,实现点击按钮能弹出一个CForm类派生的窗体,应怎样做??
(创建和弹出CForm窗体???)对于窗体的调用我总是不明白,另外怎样关闭这个窗体?请各位高手指点一二非常感谢!!

解决方案 »

  1.   

    create吧
    www.codeproject.com上有个例子,你可以去看看
      

  2.   

    在CreateView是将原来是CView的基类改为你的CForm窗体。
    现实问题:如果只想弹出一个窗口,为何不使用Dialog,比CFormView容易操作多了。
      

  3.   

    to sammon(努力学习) :我也知道用Create,但是在那里用,怎样用?to wuxuan(真心英雄) :我想保留CView的窗口,要两种窗口都能用。dialog窗口谈来谈去得不好看,而且我就得用CFormView,又没有什么好办法??
      

  4.   

    关闭窗体使用CDialog::EndDialog()函数
      

  5.   

    单文档多视,多文档多视,你可以在msdn中找到例子
      

  6.   

    1.生成一个CFormView的派生类,不妨命名为CFormViewDemo;
      为CFormViewDemo添加虚函数Create(...)
    2.可以在CMainFrame类中增加此类的指针变量
      CFormViewDemo *m_pwndFormDemo; //#include "FormViewDemo.h"
    3.CMainFrame类的OnCreate函数中加入以下代码
      CRuntimeClass * prt =RUNTIME_CLASS(CFormViewDemo);
      if(prt)
        m_pwndFormDemo = (CFormViewDemo *)prt->CreateObject();
      else
      {
        TRACE0("Warning: Couldn't CreateObject CFormViewDemo\n");
        return 0;
      }
      if (!m_pwndFormDemo->Create(
                        NULL, NULL, 
                        AFX_WS_DEFAULT_VIEW, 
                        CRect(0,0,0,0), this, 0, NULL))
      {
        TRACE0("Warning: Couldn't CreateObject CFormViewDemo\n");
        return 0;
      }
    4. 为CMainFrame两个菜单项,操作方法如下
    //显示FormView
    void CMainFrame::OnOpen() 
    {
      if(m_pwndFormDemo->m_hWnd)
      {
         m_pwndFormDemo->MoveWindow( 25, 25, 400, 300);//尺寸自己调整
         m_pwndFormDemo->ShowWindow(SW_NORMAL);
      }
    }
    //关闭FormView
    void CMainFrame::OnClose() 
    {
      if(m_pwndFormDemo->m_hWnd)
      {
        m_pwndFormDemo->ShowWindow(SW_HIDE);
      }
    }