分享一下CHtmlView指定IE内核版本崩溃问题及解决办法
2014-02-19 13:59
375 查看
相关环境:
Win7 64位
MFC工程 UNICODE字符类型
相关技术点:
为进程指定用到的IE版本
/article/2378606.html
问题引出:
最近做一个类似浏览器的应用,加载网页地址url。我是自己写的一个类,继承自CHtmlView,然后做一些处理。
其中涉及到了必须得指定IE内核的操作。但是遇到个很莫名其妙的问题,当用户电脑的IE内核版本为IE9时,如果指定进程中的CHtmlView使用IE9内核的话,程序就会在调用窗口过程函数时
即文件wincore.cpp中的428行
1--> LRESULT CALLBACK
_AfxActivationWndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
中的
2--> if (bCallDefault)
lResult = CallWindowProc(oldWndProc, hWnd, nMsg, wParam, lParam);
处出现崩溃的情况。因此我详细做了一个测试,如下表所示:
表头的7000、8888等代表修改注册表SOFTWARE\\Microsoft\\Internet Explorer\\MAIN\\FeatureControl\\FEATURE_BROWSER_EMULATION下的数值,即指定IE版本
数值具体含义请参考:http://msdn.microsoft.com/en-us/library/ee330730%28v=vs.85%29.aspx
Wrong代表CHtmlView在加载网页时,在调用窗口过程函数时(即上面的2-->处)出现崩溃情况
Right代表没有出现崩溃情况
从测试结果可以看出,当IE内核为IE9时,如果我们指定CHtmlView用的IE内核为IE9或IE11版本时,则程序会出现在调用窗口过程函数时崩溃的情况。我不知道这是为什么,是否跟页面上有某些控件有关。但当遇到这种情况时,我们可以避开在IE9上指定IE9或IE11内核
PS:如果用户电脑上的最新版本是IE9,此时即使你指定IE10或IE11,CHtmlView使用的版本也只能是IE9,即当前最高版本。可是为什么我测试结果中,IE内核为IE9时,我指定IE9、IE11都出现崩溃情况,但指定IE10没有任何问题?不知道这是什么原因,感兴趣的可以在这探讨下
Win7 64位
MFC工程 UNICODE字符类型
相关技术点:
为进程指定用到的IE版本
/article/2378606.html
问题引出:
最近做一个类似浏览器的应用,加载网页地址url。我是自己写的一个类,继承自CHtmlView,然后做一些处理。
其中涉及到了必须得指定IE内核的操作。但是遇到个很莫名其妙的问题,当用户电脑的IE内核版本为IE9时,如果指定进程中的CHtmlView使用IE9内核的话,程序就会在调用窗口过程函数时
即文件wincore.cpp中的428行
1--> LRESULT CALLBACK
_AfxActivationWndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
中的
2--> if (bCallDefault)
lResult = CallWindowProc(oldWndProc, hWnd, nMsg, wParam, lParam);
处出现崩溃的情况。因此我详细做了一个测试,如下表所示:
表头的7000、8888等代表修改注册表SOFTWARE\\Microsoft\\Internet Explorer\\MAIN\\FeatureControl\\FEATURE_BROWSER_EMULATION下的数值,即指定IE版本
数值具体含义请参考:http://msdn.microsoft.com/en-us/library/ee330730%28v=vs.85%29.aspx
Wrong代表CHtmlView在加载网页时,在调用窗口过程函数时(即上面的2-->处)出现崩溃情况
Right代表没有出现崩溃情况
从测试结果可以看出,当IE内核为IE9时,如果我们指定CHtmlView用的IE内核为IE9或IE11版本时,则程序会出现在调用窗口过程函数时崩溃的情况。我不知道这是为什么,是否跟页面上有某些控件有关。但当遇到这种情况时,我们可以避开在IE9上指定IE9或IE11内核
PS:如果用户电脑上的最新版本是IE9,此时即使你指定IE10或IE11,CHtmlView使用的版本也只能是IE9,即当前最高版本。可是为什么我测试结果中,IE内核为IE9时,我指定IE9、IE11都出现崩溃情况,但指定IE10没有任何问题?不知道这是什么原因,感兴趣的可以在这探讨下
相关文章推荐
- Android studio 安装中遇到一些问题的解决办法,分享一下
- Android studio 安装中遇到一些问题的解决办法,分享一下
- Android studio 安装中遇到一些问题的解决办法,分享一下
- 最近一阵子写C#的项目,遇到的一些问题以及解决的办法,跟大家分享一下```
- Android studio 安装中遇到一些问题的解决办法,分享一下
- Android studio 安装中遇到一些问题的解决办法,分享一下
- Android studio 安装中遇到一些问题的解决办法,分享一下
- DBImport V3.7版本发布及软件稳定性(自动退出问题)解决过程分享
- ASP.NET 程序中删除文件夹导致session失效问题的解决办法分享
- Android Material Design Ripple Effect在Android5.0(SDK=21)以下Android版本崩溃问题解决
- 分享一下我的懒惰解决了一个棘手问题
- CHtmlView指定IE内核版本
- 友盟集成微信分享,显示您的设备没有安装微信问题及解决办法
- 解决了之前说的s60webkit 浏览wml页面崩溃和在V5版本下单击Enter无反应的问题
- 使用JCMS2.5.7版本预览出现问题的解决办法。
- 编译版本的自修改问题解决办法
- Android之部分手机(oppo r9s)安装app出现崩溃问题解决办法
- IOS 下获取 rootviewcontroller 的版本不同的问题解决办法
- JSP刷新页面表单重复提交问题解决办法分享
- JSP刷新页面表单重复提交问题解决办法分享