博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
CHtmlCtrl的实现
阅读量:4970 次
发布时间:2019-06-12

本文共 1437 字,大约阅读时间需要 4 分钟。

  MFC中的视图文档结构有CHtmlView,可以展示网页,其原理是IWebBrowser的封装,我们当然可以自己封装一个html控件,不多利用现有类来派生更加简单。

  由于CHtmlView是视图文档结构中的一部分,需要CHtmlView视图从中剥离出来。只用重载下面三个函数。

1 BEGIN_MESSAGE_MAP(CHTMLCtrl, CHtmlView)    2     //{
{AFX_MSG_MAP(CHTMLCtrl) 3 ON_WM_DESTROY() 4 ON_WM_MOUSEACTIVATE() 5 //}}AFX_MSG_MAP 6 END_MESSAGE_MAP() 7 afx_msg void OnDestroy(); 8 afx_msg int OnMouseActivate(CWnd* pDesktopWnd,UINT nHitTest,UINT message); 9 10 virtual void PostNcDestroy() {};
1 ////    2 // Override to avoid CView stuff that assumes a frame.    3 //    4 void CHTMLCtrl::OnDestroy()    5 {    6     IHTMLDocument2Ptr pHTMLDoc2 = NULL;    7      8     pHTMLDoc2 = this->GetHtmlDocument();    9      10     if (pHTMLDoc2)   11     {   12         pHTMLDoc2->Release();   13     }   14     15     // This is probably unecessary since ~CHtmlView does it, but   16     // safer to mimic CHtmlView::OnDestroy.   17     if (m_pBrowserApp)   18     {   19         m_pBrowserApp->Release();   20         m_pBrowserApp = NULL;   21     }   22 23     CWnd::OnDestroy(); // bypass CView doc/frame stuff   24 }   25 26 ////   27 // Override to avoid CView stuff that assumes a frame.   28 //   29 int CHTMLCtrl::OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT msg)   30 {   31     // bypass CView doc/frame stuff   32     return CWnd::OnMouseActivate(pDesktopWnd, nHitTest, msg);   33 }

 

 

转载于:https://www.cnblogs.com/aishangxue/p/3458293.html

你可能感兴趣的文章
Javascript获取select下拉框选中的的值
查看>>
并发编程注意的问题
查看>>
angular--ngResource的简单使用
查看>>
android本地数据库,微信数据库WCDB for Android 使用实例
查看>>
如何快速三个月成为一个领域的高手的四个方法
查看>>
[51nod]1347 旋转字符串
查看>>
【Linux开发】CCS远程调试ARM,AM4378
查看>>
springmvc常用注解标签详解
查看>>
Linux之ssh服务介绍
查看>>
Sql语句里的递归查询(转)
查看>>
[JAVA]《Java 核心技术》(一)
查看>>
libevent机制
查看>>
rabbit ip登录
查看>>
呼叫器
查看>>
Hadoop Archives
查看>>
.Net基础篇_学习笔记_第六天_for循环语法_正序输出和倒序输出
查看>>
Java 十进制和十六制之间的转化(负数的处理)
查看>>
反射那些事儿——Java动态装载和反射技术
查看>>
Java Swing提供的文件选择对话框 - JFileChooser
查看>>
排序:冒泡排序
查看>>