WEB开发网
开发学院软件开发VC VC6中使用CHtmlView在对话框控制中显示HTML文件 阅读

VC6中使用CHtmlView在对话框控制中显示HTML文件

 2008-11-13 19:32:52 来源:WEB开发网   
核心提示: intCHtmlCtrl::OnMouseActivate(CWnd*pDesktopWnd,UINTnHitTest,UINTmsg){//旁路CView文档/框架returnCWnd::OnMouseActivate(pDesktopWnd,nHitTest,msg);}voidCHt

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)

上一页  1 2 3 4  下一页

Tags:VC 使用 CHtmlView

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接