MFC 如何点击不同的按钮后在界面同一位置显示不同的对话框内容

MFC 怎么点击不同的按钮后在界面同一位置显示不同的对话框内容
本帖最后由 jp417799578 于 2015-05-20 21:43:59 编辑
MFC  如何点击不同的按钮后在界面同一位置显示不同的对话框内容
 
如图类似Tab控件的功能    但Tab控件按钮是固定的上下左右  不方便     所以想自己重新做个这种   我MFC新手,求指点,具体要怎么弄,如果可以,给我发个这种例子研究下更好了,好人一生平安,谢谢。
------解决思路----------------------
【更正】
还有,PictureBox要改一下ID,改成IDC_PIC1,不能用IDC_STATIC,这是一个公用的无效ID。
然后这两个变量要在头文件(CMyApp1Dlg.h)里声明,不然生存期限制会导致内存崩溃:
class CMyApp1Dlg : public CDialog {
// 加入以下代码
public:
CDIALOG1 m_InnerDialog1; // 声明子对话框
CDIALOG2 m_InnerDialog2;
};
然后在OnInitDialog里加入以下代码:
CRect rect;  
m_InnerDialog1.Create(IDD_BUTTON1,this);  // 创建非模态对话框,父级是自己
m_InnerDialog2.Create(IDD_BUTTON2,this);  // 创建非模态对话框,父级是自己
GetDlgItem(IDC_PIC1)->GetWindowRect(&rect); // 准确定位
ScreenToClient(&rect);   // 千万注意别用成ClientToScreen
m_InnerDialog1.MoveWindow(rect); // 移动到
m_InnerDialog2.MoveWindow(rect); // 移动到
m_InnerDialog1.ShowWindow(SW_SHOW);  // 显式子对话框
m_InnerDialog2.ShowWindow(SW_HIDE);  // 隐藏子对话框
最后在各按钮里加入以下两句即可:
m_InnerDialog1.ShowWindow(SW_HIDE); // 更改目前显式的子对话框
m_InnerDialog2.ShowWindow(SW_SHOW);
--------------------------------------------------------------------------
如果出现了错误:没有适合的默认构造函数,那么就打开CDIALOG1.cpp和CDIALOG2.CPP把那个构造函数的参数pParent后边添加默认值=NULL
CDIALOG1::CDIALOG1(CDialog *pParent = NULL) : CDialog(CDIALOG1::IDD, pParent) {
 // ...
}
--------------------------------------------------------------------------
你的问题是对C++的语法不太熟悉,建议楼主回去学习一下C++的语法。