基于单文档的应用程序,使用CHtmlView 打开web页面关闭后,再次打开失败?

qinxiaolin 2010-01-15 10:22:41
1、 基于单文档的应用程序,使用CHtmlView 打开web页面成功。代码如下:
void CTestAxWebView::OnStart()

CWinApp* pApp = AfxGetApp();
POSITION pos = pApp->GetFirstDocTemplatePosition();
CDocTemplate* pDocTemplate = pApp->GetNextDocTemplate(pos);

POSITION pos1 = pDocTemplate->GetFirstDocPosition();
CDocument *pCoc=pDocTemplate->GetNextDoc(pos1);

// Activate the frame.
pDocTemplate->InitialUpdateFrame(pFrame, pCoc);
CTestAxWebView *pView = (CTestAxWebView*)pFrame->GetActiveView();
LPCSTR vUrl2= "http://www.etest.com.cn//clientInterface.jsp";
pView->Navigate(vUrl2, NULL, NULL,NULL,NULL,NULL);
}

2、在web页面点击【关闭窗口】按钮后,web页面关闭成功,程序界面显示的是空白文档。

3、再次执行 OnStart()函数 打开web页面,程序界面没有更新,也没有弹出错误信息。

请问:
1、在步骤2:点击【关闭窗口】按钮后,引发了什么事件?
我重载了CTestAxWebView 类的 OnDrop 、OnQuit函数,并生成了WM_DESTROY 消息的函数代码,点击【关闭窗口】按钮后均
没有调用相应的函数。
2、如果想再次打开成功该如何处理?
3、如何捕捉到点击【关闭窗口】按钮后的相关消息呢?
请各位大侠提供意见,谢谢。

...全文
291 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
蒋晟 2010-02-01
  • 打赏
  • 举报
回复
http://support.microsoft.com/kb/253219

BEGIN_EVENTSINK_MAP(CIEAutomationView, CHtmlView)
ON_EVENT(CHtmlView, AFX_IDW_PANE_FIRST, DISPID_DOCUMENTCOMPLETE, DocumentComplete, VTS_DISPATCH VTS_PVARIANT)
ON_EVENT(CHtmlView, AFX_IDW_PANE_FIRST, DISPID_WINDOWCLOSING, WindowClosing,VTS_BOOL VTS_PBOOL)
ON_EVENT(CHtmlView, AFX_IDW_PANE_FIRST, 250 /* BeforeNavigate2 */, BeforeNavigate2, VTS_DISPATCH VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PBOOL)
END_EVENTSINK_MAP()

void CIEAutomationView::WindowClosing(VARIANT_BOOL IsChildWindow,
VARIANT_BOOL *Cancel)
{
if(!IsChildWindow){
if(Cancel)
*Cancel=VARIANT_TRUE;
if(AfxMessageBox(IDS_WINDOW_CLOSING,MB_YESNO)==IDYES)
GetParentFrame()->PostMessage(WM_CLOSE, 0, 0);
}
}
skyxie 2010-01-18
  • 打赏
  • 举报
回复
CHtmlView 中就是内嵌的webbrowser

查MSDN, CWinApp::OnFileNew
qinxiaolin 2010-01-16
  • 打赏
  • 举报
回复
to skyxie:
我没有直接插入 webbrowser 控件,不知是否有其他方法能够捕捉到你说的 DWebBrowserEvents2::WindowClosing Event 事件。

如果执行 OnFileNew ,应该如何处理呢?
skyxie 2010-01-15
  • 打赏
  • 举报
回复
点击【关闭窗口】按钮后 CHtmlView 中的webbrowser已经被关闭了!
触发的不是windows窗口的事件,而是 webbrowser的事件 DWebBrowserEvents2::WindowClosing Event

2、如果想再次打开成功该如何处理?
---------
执行 OnFileNew
qinxiaolin 2010-01-15
  • 打赏
  • 举报
回复
我晕哦,半天没个人回贴!自己UP一下~

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧