在用chtmlview自编的多文档浏览器中,如何得到用ie新建窗口的地址
用chtmlview作的多文档浏览器,当网页中要另外打开一个窗口时,总是在ie中打开,
如何才能截获消息及地址,使能够在新文档中打开,就像oicq的TB一样
问题点数:20、回复次数:3Top
1 楼111222(www.111222.cn)回复于 2001-04-07 13:53:00 得分 20
重载虚函数OnNewWindow2(把CReaderView换成你的类名)
virtual void OnNewWindow2(LPDISPATCH* ppDisp, BOOL* Cancel);
void CReaderView::OnNewWindow2(LPDISPATCH* ppDisp, BOOL* Cancel)
{
CString result;
CMainFrame* pmymainframe=(CMainFrame*)AfxGetMainWnd();
pmymainframe->SendMessage(WM_COMMAND,ID_FILE_NEW);
CMDIChildWnd* pchild=pmymainframe->MDIGetActive();
CReaderView* pmyhtmlview=(CReaderView*)pchild->GetActiveView();
*ppDisp=pmyhtmlview->GetApplication();
// Get a pointer to the application object
CWinApp* pApp = AfxGetApp();
// Get the correct document template
CDocTemplate* pDocTemplate;
POSITION pos = pApp->GetFirstDocTemplatePosition();
pDocTemplate = pApp->GetNextDocTemplate(pos);
ASSERT(pDocTemplate);
// Create the new frame
CFrameWnd* pNewFrame = pDocTemplate->CreateNewFrame(GetDocument(),
(CFrameWnd*)AfxGetMainWnd());
ASSERT(pNewFrame);
// Activate the frame and set its active view
pDocTemplate->InitialUpdateFrame(pNewFrame, NULL);
CReaderView* pWBVw = (CReaderView*)pNewFrame->GetActiveView();
ASSERT(pWBVw);
pWBVw->SetRegisterAsBrowser(TRUE);
*ppDisp = pWBVw->GetApplication();*/
CHtmlView::OnNewWindow2(ppDisp, Cancel);
}
Top
2 楼lkjx(tiancai)回复于 2001-04-07 14:53:00 得分 0
谢谢,差不多解决了
我把
pmymainframe->SendMessage(WM_COMMAND,ID_FILE_NEW);
注释掉了
否则会多开一个窗口
让我再研究研究怎么给分
Top
3 楼lkjx(tiancai)回复于 2001-04-10 18:51:00 得分 0
才搞明白
原来你给了我两种方法
怎么不说明白Top




