回复人:erehw(疯狂CS) (2001-5-22 23:46:00)  得0分 
问题我解决了。实在不好意思。开始的时候我自己没去试。
如下:void CMyWinApp::OnFileNew()
{
  CDocument* pDoc = NULL;
  POSITION pos = GetFirstDocTemplatePosition();
  ASSERT(pos != NULL);  CDocTemplate* pTemplate=NULL;    pTemplate= GetNextDocTemplate(pos);        pDoc=pTemplate->OpenDocumentFile (NULL,false);
  
    pos = pDoc->GetFirstViewPosition ();
    CFrameWnd*  pFrame;
    CView * pView;
    pView =(CView*) pDoc->GetNextView (pos);
    pFrame=pView->GetParentFrame ();
    pFrame->ShowWindow (SW_SHOW);
}我已经做了一个例子,如果需要的话,我有空上传到我的空间上去,现在不行,因为服务器出了问题,(怒)。http://www.erehw.com 
____
呀,GetFirstDocTemplatePosition()和GetNextDocTemplate()是CWinApp的成员函数。:D  

解决方案 »

  1.   

    看了http://www.erehw.com/
    问题:1 TOPMOST==后台打开? 2 没有rar的解压工具下载,原来做Java的时候常用的,忘了
      

  2.   

    lilopiao:
          当你的一个窗口在顶端的时候,其余的窗口都在它后面打开,这样..就差不多是topmost了
      

  3.   

    难道这是一个容易的问题?
    毫无疑问,这个问题不简单,WS_EX_TOPMOST风格被WS_CHILD风格所忽略。
    而所有MDI子窗口都是CMainFrame的子窗口。
    因此,如果你想实现很自由的将任一个VIEW定在最前面,你得重新改写MDI结构,重载你的框架类,不能从CMDIChildWnd继承,至少要从CFramdWnd(如果不幸,你得从CWnd)写起。———————————————————————————
    只是我自己想想的,或许还有其他办法,不要放弃呀,就权当灌水吧。
    http://www.erehw.com
    http://www.xmlcn.com
      

  4.   

    Sorry,我刚贴了上面那个,就找到了一个方法。真是不好意思。
    具体请到:
    http://www.csdn.net/expert/topic/139/139512.shtm_________________________________________
    http://www.erehw.com
    http://www.xmlcn.com
      

  5.   

    jhyu119:
    看来只有用非模式对话框应急了,不过就不是这个问题了。
    erehw:
    谢谢:2个方法值得考虑。          
      

  6.   

    erehw:
    好注意:OnWindowPosChanged
    但用了SetWindowPos后会不会导致某个正在应用中的子窗口失去焦点?
    而且我先前也用过SetWindowPos,似乎不起作用!
    是的,这个问题有两个结果:一是子窗口TOPMOST&FOCUS,另一是TOPMOST&不使应用窗口LOSTFOCUS。
    让我再试试 OnWindowPosChanged ,总之谢谢了。
    定时器方法恐怕我这里不好用,因为我得在TOPMOST窗口中加载实时处理对象。  
      

  7.   

    erehw:
    跟踪调试结果:
    1 函数OnWindowPosChanged( WINDOWPOS* lpwndpos )被执行。
    2 SetWindowPos仍不起作用。
    就用非模式窗口好了,反正老板看不出来。
    不好意思耽误各位了。
      

  8.   

    又试过WS_POPUP,还是被忽略了。