如果我要在视图中放十六个对话框,该如何操作呀?如果我第一次要显示八个对话框,下次再显示十六个对话框,并且一次性排好,那又如何操作了?刚学VC没多久,请大侠们指点指点,谢谢了!

解决方案 »

  1.   

    用对话框指针的数组进行操作;
    pdlg->showwindow();显示
      

  2.   

    这么多对话框……
    多文档程序能不能满足要求呢?如果能满足的话,不妨试试多文档程序的。如果一定要用对话框的话,MoveWindow函数可以同时设置窗体的位置和大小,所以只需要计算好每一个对话框应该在的位置,然后用MoveWindow函数把它们移动过去,然后调用它们的ShowWindow函数进行显示就可以了。
    管理这些对话框的话,可以把这些对话框的指针放在一个vector里面(或者数组也可以,但是用起来没有vector方便)就可以了。
      

  3.   

    1.对话框要为非模态的,即你要创建对话框时调用Create函数
    2.显示的时候用ShowWindow(SW_SHOW),而不是DoModal;隐藏用ShowWindow(SW_HIDE)
    3.划分每个对话框的位置,分别移动窗口位置使用MoveWindow
      

  4.   

    哦,这是个好方法,但我想了下,是不是还可以自己创建一个窗口呀,在formview下调用,是否可行了,楼上的大侠指点下
      

  5.   

    //CDlg1为主窗体
    //CDlg2为子窗体


    BOOL CreateModeLessDlg(UINT dlgID)                //创建无模式对话框
    {
         
         CDlg2  * pDialog =new CDlg2 ;                //可以任选一个对话框类来创建无模式对话框,最好不要用待创建对话框的父类来创建
         
         ASSERT_VALID (pDialog) ;
         
         BOOL bResult = pDialog->Create( dlgID) ;
         pDialog->ShowWindow(1);
         
         ASSERT (bResult ) ;
         return bResult;
    }

    BOOL CDlg1::OnInitDialog()
    {
         CreateModeLessDlg(IDD_DIALOG2);              //CDlg2 ID 
         return TRUE;  
    }

    void CDlg1::OnButton1() 
    {    
         PostMessage(WM_SYSCOMMAND,SC_MAXIMIZE,0);    //最大化主窗体
    }
      

  6.   

    BOOL CDlg1::OnInitDialog()
    {
         CreateModeLessDlg(IDD_DIALOG2);              //CDlg2 ID 
         return TRUE;                                 //
    }
      

  7.   

    BOOL3CDlg1::OnInitDialog()
    {
    33333CreateModeLessDlg(IDD_DIALOG2);33333333333333//CDlg23ID3
    33333return3TRUE;333333333333333333333333333333333//
    }
      

  8.   

    只要一个对话框模板就行了,定义十六个类对像,然后create对话框就行...
    用MoveWindow和ShowWindow排好就行.
      

  9.   

    单文档程序,切分, CSplitterWnd 网上一搜就一堆!
    具体实现我一下也说不清楚的
    CSplitterWnd 最多支持16 X 16
      

  10.   

    请下载我的"SimplestSDI.zip",可以显示16个图片,可以改个数.
      

  11.   

    大哥,你的这个SimplestSDI.zip例子,下下来,打不开,能否重传一个,文件和数据已破坏呀!
      

  12.   

    我这里"我的资源"上不去了,你要不忌讳给我一个Email地址我给你发去.
      

  13.   

    楼上的大侠,邮箱里没有收到你的信件呀,哎,不会是没有发送成功吧!
    邮箱是:[email protected](前面的三个字母是黑龙江拼音的前三个字母,你不会是发错了吧)
    有时间的话,再给我发份吧,谢了啊!