最近要做一个简单的图形表示程序,我想在一个SDI单文档中做成一个像MDI多文档的形式,现在就是想问一下,如何像MDI一样在SDI的视图中镶嵌不定数的Dialog(动态创建的),而Dialog又可以改变尺寸,我知道了可以指定Dialog为child,在父类中动态创建.但好象child对话框不能改变尺寸的.还有重要的是处理多个Dialog的叠加问题,始终只有一个Dialog在最前面并可以操作的,最后就是在操作这些Dialog时,对主窗口不影响.说白了就是把SDI做成MDI形式,但只需要一个文档对象.
    希望能给个提示,或现有的例子也成.分不多,但一定给.

解决方案 »

  1.   

    可能我说的不太清楚,我要的视图类不是用来显示数据的,我只想用他的Dialog形式,然后我主要用鼠标来操作这些Dialog(比如移动啊改变大小什么的).而SDI我只是当作容器来使用的,或SDI中的唯一一个视图类我是用来包容这些Dialog的.
    我的程序只是用这些Dialog来做为小窗口,而视图窗口则作为大窗口,主要取的数据就是这些Dialog在视图窗口中的坐标值,而文档也只是记录这写坐标值.
      

  2.   

    如果你要用Dialog作为图形的话 还不如用GDI自己绘制
      

  3.   

    你用CFormView吧,和对话框是一样的
    不过这样做会有一个问题,就是你需要自己管理当前处于激活状态的窗口,然后控制每个窗口标题栏的颜色状态,还不如用CreateNewFrame,我觉得这样会好一些,不需要你去管理窗口状态,然后你可以将CFormView作为每个CreateNewFrame的子窗口
      

  4.   

    对,我现在就是不知道如何管理这些个CDialog,为什么他们从创建开始都一直是非激活状态的呢?如何去管理他们,始终只能有一个是激活的?
      

  5.   

    如果把子对话框设置成child,那么可以镶嵌到父对话框中,但它们永远处于未激活状态,并且子窗口有时还会假死.这样如何处理呢?
    如果把子对话框设置成层叠模式,那么和PopUp是一样的,与父窗口同处于桌面,但只有一个窗口是处于激活的(包括父窗口).这种情况下又如何处理呢?如何让父窗口一直处于激活状态,同时也只少有一个子窗口处于激活状态?