问题是这样:点击主对框上的菜单栏,把各菜单选项对应的子对话框显示在原来的主对话框上,而不是另外弹出子对话框,怎么实现?

解决方案 »

  1.   

    下午 刚答过这个问题。。
    http://topic.csdn.net/u/20090505/15/ad6a2b20-728f-4be1-aaa6-05f559a70269.html
      

  2.   

    字对话框需要选中CHILD风格!
      

  3.   

    比如你的子对话框是CDialog1,CDialog2;
    那么第一步,在主对话框的头文件中定义其其成员变量如:
    CDialog1  m_dlg1;
    CDialog2  m_dlg2;
    并定义一个当前显示对话框的窗口指针,主要是用来控制隐藏:
    CWnd     m_pCurWnd;
    第二步:
    在主对话框的OnInitDialog函数里创建这两个对话框,并隐藏掉:
    m_dlg1.Create(CDialog1::IDD, this);
    m_dlg1.ShowWindow(SW_HIDE);
    m_dlg2.Create(CDialog2::IDD, this);
    m_dlg2.ShowWindow(SW_HIDE);
    m_pCurWnd = NULL;//当前还没有显示的子对话框
    另外子对话框的位置和大小你可以通过MoveWindow来控制。第三步,点击你的菜单的命令处理函数里添加代码:比如是让m_dlg1显示,则:
    if(m_pCurWnd)//如果有先前显示的,则先隐藏
      m_pCurWnd->ShowWindow(SW_HIDE);
    m_dlg1.ShowWindow(SW_SHOW);
    m_pCurWnd = &m_dlg1;
      

  4.   

    第一步是不是要给子对话框创建一个类?CDialog1,CDialog2是类名吗?