VC6中使用CHtmlView在对话框控制中显示HTML文件
2008-11-13 19:32:52 来源:WEB开发网intCHtmlCtrl::OnMouseActivate(CWnd*pDesktopWnd,UINTnHitTest,UINTmsg)
{
//旁路CView文档/框架
returnCWnd::OnMouseActivate(pDesktopWnd,nHitTest,msg);
}
voidCHtmlCtrl::OnDestroy()
{
if(m_pBrowserApp)
{
m_pBrowserApp->Release();
m_pBrowserApp=NULL;
}
CWnd::OnDestroy();//旁路CView文档/框架
}
通常,CHtmlView是在virtualvoidPostNcDestroy()中释放空间,但对话框中的控制常常是作为堆栈对象实现的,所以,在PostNcDestroy()中不必在做什么。
virtualvoidPostNcDestroy()
为了实现“app:”假协议,重载导航处理器OnBeforeNavigate2()。传递“app:”链接到一个虚拟协议处理器。因为app:是假协议,所以在浏览起重要取消掉这个导航。
voidCHtmlCtrl::OnBeforeNavigate2(LPCTSTRlpszURL,DWORDnFlags,LPCTSTRlpszTargetFrameName,
CByteArray&baPostedData,LPCTSTRlpszHeaders,BOOL*pbCancel)
{
constcharAPP_PROTOCOL[]="app:";
intlen=_tcslen(APP_PROTOCOL);
if(_tcsnicmp(lpszURL,APP_PROTOCOL,len)==0)
{
OnAppCmd(lpszURL+len);
*pbCancel=TRUE;
}
}
重载OnAppCmd(),处理app:命令,当浏览器准备导航到“app:foo”时,这个函数被调用,参数lpszWhere的值为“foo”。
voidCHtmlCtrl::OnAppCmd(LPCTSTRlpszWhere)
更多精彩
赞助商链接