原文转自 http://bbs.csdn.net/topics/391039432

【MFC】 点击不同的按钮后在界面同一位置显示不同的对话框内容(转)-LMLPHP

如图类似Tab控件的功能    但Tab控件按钮是固定的上下左右  不方便     所以想自己重新做个这种   我MFC新手,求指点,具体要怎么弄,如果可以,给我发个这种例子研究下更好了,好人一生平安,谢谢。

【解决方案】

新建一个Style为Child,Border为None的对话框,然后在父对话框那里添加一个PictureBox(IDC_PIC1)用于定位,Visible设为False

//CDlgParent.h  
CDialog m_InnerDlg1;  // 也可以新建一个类CMyDialog
CDialog m_InnerDlg2;  // 也可以新建一个类CMyDialog

//CDlgParent.cpp——OnInitDialog()  
CRect rect;  
m_InnerDlg1.Create(IDD_INNER_1, this);  // 创建非模态对话框,父级是自己
m_InnerDlg2.Create(IDD_INNER_2, this);  // 创建非模态对话框,父级是自己
GetDlgItem(IDC_PIC1)-> GetWindowRect(&rect); // 准确定位
ScreenToClient(&rect);   // 千万注意别用成ClientToScreen
m_InnerDlg1.MoveWindow(rect); // 移动到
m_InnerDlg2.MoveWindow(rect); // 移动到
m_InnerDlg1.ShowWindow(SW_SHOW);  // 显式对话框
m_InnerDlg1.ShowWindow(SW_HIDE);  // 隐藏对话框

05-21 20:04