MFC - 在对话框上的同一区域显示不同的内容(子对话框)

6 篇文章 0 订阅

首先应该有一个主对话框MainDialog,两个子对话框ChildDialog1、ChildDialog2,其中两个子对话框的属性Style=Child,Border=None;

分别对应类CMainDialog、CChildDialog1、CChildDialog2;

两个子对话框的ID分别为IDD_CHILD1_DIALOG、IDD_CHILD2_DIALOG

1)、在主对话框上添加一个Picture Control控件,属性Visible=False,主要作用是提供区域的参考;

 

2)、在CMainDialog.h中分别声明一下两个变量

CChildDialog1 *m_Child1Dlg;
CChildDialog2 *m_Child2Dlg;

3)、

CRect Rect;

m_Child1Dlg= new CChildDialog1 ;
m_Child2Dlg= new CChildDialog2 ;


//创建非模态对话框
m_SimpleConicDlg->Create(IDD_CHILD1_DIALOG, this);
m_ComplexConicDlg->Create(IDD_CHILD2_DIALOG, this);

//获取区域
GetDlgItem(IDC_PICTURE_LOCALREC)->GetWindowRect(&Rect);

//将对话框移动到该区域并显示出来
m_Child1Dlg->MoveWindow(Rect);
m_Child1Dlg->ShowWindow(SW_SHOW);

 

4)、如果是根据主对话框中的ComBox中的内容来显示不同的对话框

只需要在改控件的单击响应函数中判断内容,

if()

{

***

m_Child2Dlg->ShowWindow(SW_HIDE);

m_Child1Dlg->MoveWindow(Rect);
m_Child1Dlg->ShowWindow(SW_SHOW);

}

eles

{

m_Child1Dlg->ShowWindow(SW_HIDE);

m_Child2Dlg->MoveWindow(Rect);
m_Child2Dlg->ShowWindow(SW_SHOW);

}

5)、如果要获取子对话框中的值,要在子对话框类中声明对应的成员变量,将控件中的值传递给成员变量

然后在主对话框程序中调用该成员变量即可

  • 3
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值