当前位置: 代码迷 >> VC/MFC >> 关于mfc单文档内部安插child对话框
  详细解决方案

关于mfc单文档内部安插child对话框

热度:185   发布时间:2016-05-02 03:41:43.0
关于mfc单文档内部插入child对话框
现在有一个formview单文档,内部需要添加几个dialog,这些需要在单文档的菜单栏响应,同时这几个不同的dialog,都能够撑满整个单文档客户区(即,不管单文档最大化,或者移动,内部的dialog均能够撑满客户区)
请问具体应该怎么做
------解决思路----------------------
假如  你要同时 显示2个 dialog  你需要以下几个步骤
1,  把2个 dialog 设置成子窗口     这个 在资源视图   ->属性-> style ->chid 
2,你要手动分配窗口的大小
     我是这么写的:
// 调整 TabCtrl 控件内(表格)大小
void CAutoTradeView::AdjustDialogSize()
{
CRect tab_rect, uprect, dnrect;
tab_ctrl_.GetClientRect(&tab_rect);

tab_rect.top    += 24;
tab_rect.bottom -= 4;
tab_rect.left   += 4;
tab_rect.right  -= 4;

uprect.left = tab_rect.left;
uprect.top = tab_rect.top;
uprect.right = tab_rect.right;
uprect.bottom = tab_rect.bottom / 2;       //这行代码是把 一个界面分成2半

dnrect.left = tab_rect.left;
dnrect.top = uprect.bottom +2;
dnrect.right = tab_rect.right;
dnrect.bottom = tab_rect.bottom;

bond_quant_dialog_.MoveWindow(tab_rect);
bond_order_dialog_.MoveWindow(uprect);
bond_update_dialog_.MoveWindow(dnrect);

3,  显示的时候 2个窗口一起显示,不显示的时候2个窗口一起关闭
switch (cur_select_page_)
{
     case 0:
bond_quant_dialog_.ShowWindow(TRUE);
bond_order_dialog_.ShowWindow(FALSE);
bond_update_dialog_.ShowWindow(FALSE);
     break;
     case 1:
bond_quant_dialog_.ShowWindow(FALSE);
bond_order_dialog_.ShowWindow(TRUE);
bond_update_dialog_.ShowWindow(TRUE);
     break;
}

我是这么写的
  相关解决方案