是这样的,
我新建了一个单文档的MFC工程,然后将该单文档划分成了左右两个区域,
左右两边的区域都是派生自CFormView类,然后新建了一个对话框资源idd_dialog_ctrl,并将这个对话框与左边的那个视图相关联,
现在问题就出来了,运行后左边的那个对话框并不能充满整个左边的视图区域,而是保持了在资源视图中的大小,我想使这个对话框充满整个左边的视图区域,并且当增大整个程序窗口时,那个对话框也可以相应的充满整个左边的客户区域,请问各位路过的大大怎么实现呢?我尝试过在左边的那个CFromView类的onsize函数中使用movewindow函数,但是运行时会出错(编译无错误)。

解决方案 »

  1.   

    应该是自动的吧,我就是像你这样创建了静态拆分的左右窗口,而且这两个窗口都派生于CFormView类,只要把对话框设成child和none就可以了。
      

  2.   

    谢谢gmp00
    其实我的也设置了的,但是我的是中文版,不确定是否设置成了如你所说,
    我把这个对话框资源的“样式”设置成了“下层”,“边框”设置成了“无”,是这样吗?
      

  3.   

    我不知道chilg是不是中文版的“下层”,边框就是无“none”,然后再生成基于CFormView的类就可以了,对话框大小不用任何设置就是随着窗口大小而变化的。你试试
      

  4.   

    在CMainFrame类中添加处理WM_SIZE消息,在消息响应函数OnSize中调用CSplitterWnd::SetColoumnInfo()/SetRowInfo();来设置大小,然后调用CSplitterWnd::ReCalcLayout();来刷新
      

  5.   

    这个好象是要在对应的那个formview类里的onsize函数里用getclienttect函数来实现的
      

  6.   

    问题已解决,
    刚才想通了,原来是这样的,那个对话框资源是充满整个对话框的,但是对话框上的控件是要自己通过setwindowpos函数来调的,而我没有调整对话框资源上的控件的大小,错以为是整个对话框资源没有充满整个客户区造成的。所以应该调整对话框上的控件大小。不过还是谢谢大家,现在给分。