MFC中,我有两个FORM  form1里面有些按钮什么的,form2一样
   form2是在单击form1中的按钮后触发创建的  是完全遮盖住form1
代码如下
CFormDLg1::onbuttonclick()
{
CFormDlg2 m_Dlg=new CFormDlg2();
m_Dlg->Create(IDD_FV,this);
CRect rect;
this->GetWindowRect(&rect);
ScreenToClient(&rect);
m_addDopeLibDlg->MoveWindow(&rect);//遮盖当前form1
//this->ShowWindow(SW_HIDE);
this->EnableWindow();
m_addDopeLibDlg->ShowWindow(SW_SHOW);//显示form2
}
问题是 form2出现后开始能完全遮盖form1,但鼠标在form2上拖动时候,会使得窗口重绘,结果将form1中的按钮什么都重绘出来了,怎么让当前只显示form1?我用this->ShowWindow(SW_HIDE);将form1隐藏结果就根本开不到form2了。mfc  form 重绘

解决方案 »

  1.   

    form1有按钮,form2也有按钮, form1隐藏了,form1的按钮怎么可能显示?
    form1的按钮,是form1的子控件。
      

  2.   

    如果隐藏form1:   ShowWindow(SW_HIDE);也就看不到form2了,form2是form1的子form
      

  3.   

    怎么还这么设计  
    form1 -> button
      ↓ 
    form2 -> button   这种关系?
      

  4.   

    额,我是只需要当前只显示form2,让鼠标拖动时候form1一直看不到。
      

  5.   

    你的form2不是form1的子控件么? 你隐藏form1,那form2肯定看不到。
    你想隐藏form1,而form2显示,那么form1和2 不能是父子关系
      

  6.   

    ----------抱歉,写错了——————————————————
    MFC中,我有两个FORM  form1里面有些按钮什么的,form2一样
       form2是在单击form1中的按钮后触发创建的  是完全遮盖住form1
    代码如下
    CFormDLg1::onbuttonclick()
    {
    CFormDlg2 m_Dlg=new CFormDlg2();
    m_Dlg->Create(IDD_FV2,this);
    CRect rect;
    this->GetWindowRect(&rect);
    ScreenToClient(&rect);
    m_Dlg->MoveWindow(&rect);//form2遮盖当前form1
    //this->ShowWindow(SW_HIDE);
    this->EnableWindow();
    m_Dlg->ShowWindow(SW_SHOW);//显示form2
    }
    问题是 form2出现后开始能完全遮盖form1,但鼠标在form2上拖动时候,会使得窗口重绘,结果将form1中的按钮什么都重绘出来了,怎么让当前只显示form2,重绘时不出现form1的控件?我用this->ShowWindow(SW_HIDE);将form1隐藏结果就根本开不到form2了
      

  7.   

    .....坑我吧.. 
    CFormDLg1->ShowWindow(SW_HIDE);//这个不行?
    CFormDLg1这是个控件吧? 应该有自身的隐藏函数吧
      

  8.   

    CFormDLg1->ShowWindow(SW_HIDE);//这个不行?
    是的,创建时候将form2作为form1的子类m_Dlg->Create(IDD_FV2,this);
    隐藏form1了,form2也就看不到了。
      

  9.   

    我是需要form2作为form1的子form
      

  10.   

    那 form1又是基于谁? 你让form2创建的时候基于 form1的父类不行?
    我MFC不熟悉...
      

  11.   

    主dlg()-->form1--->form2
    在按form1中的一个弹出menu后出现form2。form2完全遮盖住form1,且需要鼠标拖动,最小化等后重绘不出现form1的控件,(当前只显示form2)
      

  12.   

    为什么会这么设计?逻辑层过不去。
    F1 addchild F2 , F1 -> hide ,F2 ->show 。至少我没用见过这样的需求。
    这个应该需要你自己实现。 MFC的界面关系,应该是 parent ->hide  ,allChild -> hide
      

  13.   

    按照 主-->form1
        主--->form2  这样可以达到目的。  不知按照主--form1-->form2可以达到目的不。
      

  14.   

    主要是form2只有在form1中才会弹出来.按照逻辑也属于form1的子form。
      

  15.   


    只能说 点击form1的button -> 创建一个form2 ,form2不属于form1