mfc单文档程序嵌入对话框尺寸确定有关问题(vs10)

mfc单文档程序嵌入对话框尺寸确定问题(vs10)
程序基于VS10提供的单文档demo生成的。
左侧建立outlook导航栏,下侧建立output窗口。
mfc单文档程序嵌入对话框尺寸确定有关问题(vs10)
样式如图所示。
现在想在右上角空白处添加一个Dialog对话框,具体思路如下:
建立对话框(类C**box),继承于CDialogEx。
生成类ControlPanel,继承于CDockablePane,添加:
C**box  m_dlg;
相应添加
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnDestroy( );三个函数。

后续于CMainFrame::OnCreate函数添加代码如下:
m_wndPanel.Create(_T("Rtppp"),this,CRect(0,0,300,300),TRUE,666,
WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI /*| C                  BRS_ALIGN_TOP *//*| CBRS_ALIGN_RIGHT*/);
m_wndPanel.EnableDocking(CBRS_ALIGN_RIGHT);
DockPane(&m_wndPanel);
其中ControlPanel      m_wndPanel;

CMainFrame::OnCreate函数中关于outlookbar和output窗口代码如下所示:
// 导航窗格将创建在左侧,因此将暂时禁用左侧的停靠:
EnableDocking(CBRS_ALIGN_TOP | CBRS_ALIGN_BOTTOM | CBRS_ALIGN_RIGHT);

// 创建并设置“Outlook”导航栏:
if (!CreateOutlookBar(m_wndNavigationBar, ID_VIEW_NAVIGATION, m_wndOutlookPane, m_wndTree, m_wndCalendar, 250))
{
TRACE0("未能创建导航窗格\n");
return -1;      // 未能创建
}

// 已创建 Outlook 栏,应允许在左侧停靠。
EnableDocking(CBRS_ALIGN_LEFT);
EnableAutoHidePanes(CBRS_ALIGN_RIGHT);

// 创建停靠窗口
if (!CreateDockingWindows())
{
TRACE0("未能创建停靠窗口\n");
return -1;
}

m_wndOutput.EnableDocking(CBRS_ALIGN_ANY);
DockPane(&m_wndOutput);

程序运行效果如下所示:
mfc单文档程序嵌入对话框尺寸确定有关问题(vs10)

其中插入的对话框未能完全填充满界面右上角空间。
请问对话框应该怎样设置,才能根据outlookbar和output窗口的大小,确定剩余空间的大小,以此确定对话框的尺寸?

谢谢各位,望不吝指教!!!
------解决思路----------------------
空白处完全填对话框吗 那里是view的区域 直接在CxxView里动态创建你的对话框元素就好了
------解决思路----------------------
引用:
Quote: 引用:

理论上使用MoveWindow和SetWindowPos函数都可以实现,具体用法,你可以百度一下或查看msdn


我已经在cdockpanel中设置了对话框随着dockpanel大小变化。
但是现在的问题是cdockpanel怎么获取剩余空间的大小?

GetWindowRect:获取窗体大小,带边框
GetClientRect:获取客户区大小,不带边框