现在有两个对话框,一个是主框,另一个子框,在主框上点击某一方面的内容,子框DoModal时,它的Caption 根据主框点击的内容而变化,请问如何实现?

解决方案 »

  1.   

    DoModal是模式对话框,主对话框在子对话框关闭之前无法动.应该使用非模式对话框
    void CTavDlg::OnButton1() 
    {
    dlg.Create(IDD_DIALOG1,this);
    dlg.ShowWindow(1);}void CTavDlg::OnButton2() 
    {
    dlg.SetWindowText("fanging");//标题
    }
      

  2.   

    上面的代码可以,但是没达到楼主的要求void CTavDlg::OnButton1()  //主对话框的函数
    {
       sonDlg dlg;
       dlg.set(newcaption);//子对话框的函数,自己去定义
       dlg.DoModal();
    }
    再重载子对话框的OnInitDialog()函数
    在里面修改修改对话框的标题
    SetWindowText(........);//标题
    即可
      

  3.   

    忘了还要自己写子对话框的set函数
    在子对话框里添加一个公有函数set,一个私有变量CString m_strCaption;
    在set函数里这样写
    void sonDlg::set(CString str)
    {
    m_strCaption=str;
    }在OnInitDialog()函数里这样写
    BOOL sonDlg::OnInitDialog()
    {
      ..................
      SetWindowText(m_strCaption);//标题
      return TRUE;
    }
      

  4.   

    现在有两个对话框,一个是主框,另一个子框,在主框上点击某一方面的内容,子框DoModal时,它的Caption 根据主框点击的内容而变化,请问如何实现?
    ===========================================
    你已经子框domodal了,还能点击主框吗??你想想吧?
    你的要求是什么呢?如果不是domodal的话,一楼的答案是对的。
    要是还想domodal的话,就没办法再点击外面的主框改变标题。