MFC嵌入activex控件(如IE控件)的焦点问题
MFC程序(VC2005),嵌入ie控件(用CHtmlView改写)。
页面脚本用 window.blur() 会使浏览器失去焦点,从而导致整个程序失去焦点。请问有啥办法可以捕获并定制其行为?
网上搜索过,有人提出在页面加载后改写 window.blur 的值。但觉得这样靠破坏脚本执行环境的方法不好;而且,若脚本在加载完成前就获取blur的函数(此时未替换),待加载完成(onload)或一段时间后重新赋给blur,就能绕过这种防护。
msdn上查了IWebBroswer2的相关接口,也没发现类似的接口,最接近的是 IProtectFocus, 也只是询问页面元素是否可获取焦点,且好像是IE7之后才支持。
我对OLE、activex不熟悉,不清楚是否OLE、activex就有定义这种行为的规范。但知道可以定制 HtmlView的ControlSite来增加接口。请问各位,拦截焦点丢失是否可以做到?MFC下该如何下手?