vc的向导会根据要求生成单文档、多文档或对话框的基本程序框架,但有时不能通过向导...假如,我现在有一个对话框程序,我想通过点击界面上的一个按钮,生成并显示一个单文档的窗口,要求有菜单、工具栏和视图,视图是派生于CScrollView的。应该怎么做?谢谢~~~

解决方案 »

  1.   

    很简单,创建一个单文档工程,将 CXxxApp::InitInstance()里的内容改成对话框创建,将原来的内容移到对话框的OnButton里就可以
      

  2.   

    即使,我使用CWinApp::InitInstance()中的代码,我也没有办法得到视图的指针,我也没有办法对视图进行操作,所以,我觉得这种方法不可取。。有会的吗?
      

  3.   

    很简单,创建一个单文档工程,将 CXxxApp::InitInstance()里的内容改成对话框创建,将原来的内容移到对话框的OnButton里就可以
      

  4.   

    这个可以用Dialog改造嘛,menu, toolbar, statusbar 都可以在Dialog中加
      

  5.   

    不知所云。如果将 CXxxApp::InitInstance()里的内容,写在OnButton()函数内,你怎么得到这个窗口的视图指针?(肯定不可能通过AfxGetApp()->GetMainWnd()来实现),因为这不是框架窗口啊。
      

  6.   

    我没学过mfc,不太懂你说的什么.你用资源编辑器做个菜单和工具栏再载入到窗口不就行了?
      

  7.   

    工具栏和菜单比较好办,可关键是,我要求视图类是CScrollView派生的,因为我要到这个类的特性。我不知道,如何不使用框架来创建这样一个窗口。??我觉得这个问题,应该是有普遍意义的,难道说对话框程序,就没法使用CScrollView吗?对话框程序,也有可能需要显示一些数据啊,???
      

  8.   

    直接在对话框的OnCreate()函数中自己建菜单,工具条,再加上一个编辑控件,也就等于一个单文档程序了。
      

  9.   

    而且,我也试过把单文档的InitInstance()中的代码,放入对话框的OnButton()函数内,void CMyDlg::OnButton()
    {
    CSingleDocTemplate* pDocTemplate;
    pDocTemplate = new CSingleDocTemplate(
    IDR_MAINFRAME,
    RUNTIME_CLASS(CMyDoc),
    RUNTIME_CLASS(CMyFrame),       // main SDI frame window
    RUNTIME_CLASS(CMyView));
    AddDocTemplate(pDocTemplate); // Parse command line for standard shell commands, DDE, file open
    CCommandLineInfo cmdInfo;
    ParseCommandLine(cmdInfo); // Dispatch commands specified on the command line
    if (!ProcessShellCommand(cmdInfo))
    return FALSE;
    }
    可是在执行OnButton()时,会提示“建立空文档失败”,事实已经证明,不能简单的照般单文档程序的代码,起码,直接复制上面的代码是不可行的!!!难道文档/视图结构的窗口,只能通过向导生成吗????
      

  10.   

    当然不能照搬,用RichEditCtrl复文本编辑框可以显示图象,和WORD差不多。