none
一个古老的问题,在CHtmlView中OnNewWindow2打开的新窗口怎样才能在同一个view内显示 RRS feed

  • 问题

  • void CNewwin2View::OnNewWindow2(LPDISPATCH* ppDisp, BOOL* Cancel) 
    {
     
    #if 1
    	ASSERT(ppDisp);
    	if (!ppDisp) return;
    	m_IsNew = 1;
    	// TODO: Add your specialized code here and/or call the base class
    	CWinApp*  pApp  =  AfxGetApp();
    
    	//  Get  the  correct  document  template
    	CDocTemplate*  pDocTemplate;
    	POSITION  pos  =  pApp-> GetFirstDocTemplatePosition();
    	pDocTemplate  =  pApp-> GetNextDocTemplate(pos);
    
    	ASSERT(pDocTemplate);
    
    	//  Create  the  new  frame
    	CMainFrame *pNewFrame  =  (CMainFrame*)pDocTemplate-> CreateNewFrame(GetDocument(),(CMainFrame*)AfxGetMainWnd());
    	ASSERT(pNewFrame);
    
    	//  Activate  the  frame  and  set  its  active  view
    	pDocTemplate-> InitialUpdateFrame(pNewFrame,  NULL);
    
    	CNewwin2View*  pWBVw  =  (CNewwin2View*)pNewFrame-> GetActiveView();
    	ASSERT(pWBVw);
      
    	pWBVw->SetRegisterAsBrowser(TRUE);
    //	ShowWindow(SW_HIDE);
    
    	*ppDisp  =  pWBVw-> GetApplication(); 
    	
    #endif
    	CHtmlView::OnNewWindow2(ppDisp, Cancel);
    }
    

    以上的代码是在网上流传了很久的来自MSDN的代码,这个代码有个问题 每次都会生成一个新窗口。

    问题1.在网上找了很久,很多人都说通过onbeforenavigate2和ononewwindow2的交互可以让生成的新窗口显示或者隐藏或者销毁,但是却没有一个人讲解一下到底该如何交互。

    问题2.如果判断新建的窗口是有效的窗口的那,那么应该怎么样才能把新建窗口的view显示到老窗口去?

     

    谢谢


    i am a new mfcer , i believe that i will be a good programmer!
    2011年8月22日 18:29

答案

  • OnBeforeNavigate2里面获得新窗口将要访问的URL,再在旧窗口里面Navigate2

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    • 已标记为答案 newmfcer 2011年8月23日 9:41
    2011年8月22日 19:46
    版主

全部回复

  • OnBeforeNavigate2里面获得新窗口将要访问的URL,再在旧窗口里面Navigate2

    The following is signature, not part of post
    Please mark the post answered your question as the answer, and mark other helpful posts as helpful, so they will appear differently to other users who are visiting your thread for the same problem.
    Visual C++ MVP
    • 已标记为答案 newmfcer 2011年8月23日 9:41
    2011年8月22日 19:46
    版主
  • 虽然最后通过http://blog.csdn.net/newmfcer/article/details/6710365这种方法实现了 但是还是要谢谢你
    i am a new mfcer , i believe that i will be a good programmer!
    2011年8月23日 9:42
  • thanks
    2011年9月24日 13:19