/*****************************感谢关注*****************************/
//////////////////////////////Creamdog/////////////////////////////
先用FindWindow找着那个窗体HWND FindWindow(
  LPCTSTR lpClassName,  // class name
  LPCTSTR lpWindowName  // window name
);
如果不知道ClassName的话用EnumDesktopWindow
BOOL EnumWindows(
  WNDENUMPROC lpfn, // callback function
  LPARAM lParam     // value to pass to callback function
);
如果不会用的话………………我倒!
不过还是说一下吧,lpfn给一个函数来处理找到的窗体,lParam随便给了,和你的那个函数里的这个参数值一样就行。获取到Window的句柄之后,ShowWindow(hWnd,SW_SHOWNORMAL);

解决方案 »

  1.   

    这个不是很简单?
    在另一个窗口中建立你要调用的两个窗口类的对象。
    在TreeView中如果点1。
    则调用a窗口的对象的DoModal()
    点则调用b窗口的对象的DoModal()同时调用a窗口对象的EndDialog()
    这样就好了。
      

  2.   

    创建三个对话框
    CParentDlg parentDlg;
    CChildDlg1 chldDlg1;
    CChildDlg2 chldDlg2;
    在CParentDlg中增加一控件IDC_FRAME,设置CChildDlg1 和CChildDlg2的风格为thin,child.
    在CParentDlg::OnInitialize()中创建CChildDlg1 chldDlg1;和CChildDlg2 chldDlg2;对象并隐藏(只显示其中一个).给出部分代码:
    CParentDlg::OnInitialize()
    {
        RECT pos;
        CWnd *pChld = GetDlgItem(IDC_FRAME);
        pChld->GetClientRect(&pos);
        pChld->ClientToScreen(&pos);
        chldDlg1.Create(..);
        chldDlg2.Create(..);
        chldDlg1.MoveTo(&pos);
        chldDlg2.MoveTo(&pos);
        chldDlg2.ShowWindow(SW_HIDE);
        chldDlg1.ShowWindow(SW_SHOW);
    }
    再增加CTreeList控件的处理消息函数.点不同的ITEM时分别将这两个对话框隐藏和显示就可以了.....
      

  3.   

    mty(天鱼)说得非常对!
    我再补充一点。
    当主对话框关闭时,你还需要处理关闭逻辑,就像属性页一样。
    最好是关闭时,给所有的子对话框发送消息,通知主对话框即将关闭。如:
    当你点击主对话框的确定按钮时,你需要
    SendMessage(AllChild,WM_COMMAND,IDOK,0);//具体的参数我不太记得了。
    当你点击主对话框的取消按钮时,你需要
    SendMessage(AllChild,WM_COMMAND,IDCANCEL,0);//具体的参数我不太记得了。