在MFC中捕获CWebBrowser控件的事件

在很多时候可能要用到CWebBrowser控件,但是CWebBrowser并不像CHtmlView一样继承一下然后重载下虚函数就可以获取IE中的事件,而CWebBrowser却没有提供这样的功能,但是可以自已进行处理,下面来看下MFC的代码:

 

1.首先定义一个CWebBrower成员对象,然后在窗口初始化事件中创建CWebBrower对象.

[cpp]  view plain copy
  1. BOOL CMyDlg::OnInitDialog()  
  2. {  
  3.    CDialog::OnInitDialog();  
  4.    //创建控件  
  5.    m_BrowserShow.Create(NULL,WS_CHILD|WS_VISIBLE,rect,this,AFX_IDC_BROWSER);  
  6.   
  7.    //开启OLE自动化  
  8.    EnableAutomation();  
  9.   
  10.    //设置事件接口  
  11.    LPUNKNOWN pUnkSink = GetIDispatch(FALSE);  
  12.    AfxConnectionAdvise((LPUNKNOWN)m_BrowserShow.get_Application(),   
  13.         DIID_DWebBrowserEvents2, pUnkSink, FALSE, &m_dwCookie);  
  14.      
  15.    return TRUE;  
  16. }  

 

2.第二步是对你感兴趣的事件进行映射

[c-sharp]  view plain copy
  1. //注意要在头文件中申明映射宏DECLARE_EVENTSINK_MAP()就像MFC的消息映射一样  
  2.   
  3. //在源文件中进行事件映射  
  4. BEGIN_EVENTSINK_MAP(CMyDlg,CDialog)  
  5.     ON_EVENT(CDialog,AFX_IDC_BROWSER,252,OnNavigateComplete2, VTS_DISPATCH VTS_PVARIANT)  
  6. END_EVENTSINK_MAP()  
  7.   
  8. void CMyDlg::OnNavigateComplete2(LPDISPATCH pDisp, VARIANT FAR* vtURL)  
  9. {  
  10. }  

 

OK,以上代码已经完成了对CWebBrower控件的事件捕获了!


原文地址:http://blog.csdn.net/mynamelj/article/details/6343032

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值