SDI窗体,有几个dialog窗体,一个是主窗体,提供目录功能(不是菜单,是在界面中的button控件),还有若干个子窗体。
现有几个问题:
1. 如何设置某个窗体为主窗体,子窗体?
2. 如何实现遵循主窗体界面上的目录选项切换至对应子界面?

解决方案 »

  1.   

    主窗体在VIEW类里面,子窗体在主窗体里面用成员变量就行了
      

  2.   

    你创建基类为FormView的SDI,那么FormView就是主窗体,在其上增加控制按钮。
    你所说的这些dialog窗体你希望如何展示呢?弹出还是嵌入在主窗体中?如果是后者,你可以在主窗体中放置个TabCtrl来管理这些子窗体。
      

  3.   

    1.由CMainFrame创建的就是主窗体。 其他的都是子窗体。 CSingleDocTemplate* pDocTemplate;
    pDocTemplate = new CSingleDocTemplate(
    IDR_MAINFRAME,
    RUNTIME_CLASS(CMy1Doc),
    RUNTIME_CLASS(CMainFrame),       // main SDI frame window
    RUNTIME_CLASS(CMy1View));        //My1View就是主的窗体  
    AddDocTemplate(pDocTemplate);
      

  4.   

    一直都是用dialog base的,对SDI不大了解。
    所有添加的dialog窗体都是CFormView的,project本身有个CFrameWnd.
    我现在的做法是将其中一个窗体作为默认界面(主界面)的形式在程序开始时显示,在菜单栏添加自定义菜单项目切换子窗体.这些窗体都嵌入在主框架中,不是主窗体中。这些现在都做好了。
    问题是我想在默认界面(主界面)中添加若干选项控件(如button),通过这些控件同样达到上面提及的菜单操作功能,实现子界面的切换.
    当前其实并没有什么主界面,我也搞不清,只是选择了一个子界面作为默认界面,提供目录功能(切换至其他界面)
      

  5.   

    可以通过控件的事件(例如点击)POST不同的消息上去就行了(也可以同一消息,带不同的参数)
      

  6.   

    还为结贴
    postmessage(WM_CHANGEPAGE, 标识显示那个子窗口, wparam);然后在消息相应函数里面
    switch(lparam)
    {
    case 
     //打开不同的窗口
    }
      

  7.   

    WM_CHANGEPAGE?
    好像没有这个消息吧???能详细点么?
      

  8.   

    就结了?看来我来晚了,你可以在各个子窗体中通过获取MAINFRAME的指针来操作其他窗体.