[IE编程] 多页面基于IE内核浏览器的代码示例

有不少人发信问这个问题,我把答案贴在这里: 建议参考 WTL (Windows Template Library)
的代码示例工程TabBrowser  (在WTL目录/Samples/TabBrowser
下面)。该工程演示了如何用WTL + IE WebBrowser接口开发一个多Tab的IE内核浏览器,
并演示如何用ATL的IDispEventSimpleImpl监听DWebBrowserEvents2 事件, 代码简洁易懂,很有参考价值。

WTL 是微软的开源项目,可以去 http://wtl.sourceforge.net/ 上下载。

TabBrowser 代码在Visual Studio 2008 上会有编译错误

1>c:/projects/wtl80/samples/tabbrowser/stdafx.h(33) : error C2065:
‘_stdcallthunk‘ : undeclared
identifier
1>c:/projects/wtl80/samples/tabbrowser/stdafx.h(33) : error
C2070: ‘‘unknown-type‘‘: illegal sizeof operand

解决方案: 在stdafx.h 里面加入#include
<atlstdthunk.h>

#include <atlbase.h>
#include <atlstdthunk.h>  //
插入这行代码可以解决VS2008 下的编译错误

#ifdef _VC80X
  // Support for VS2005 Express & SDK ATL
 
namespace ATL
  {
 inline void * __stdcall
__AllocStdCallThunk()
 {
  return
::HeapAlloc(::GetProcessHeap(), 0, sizeof(_stdcallthunk));
 }

inline void __stdcall __FreeStdCallThunk(void
*p)
 {
  ::HeapFree(::GetProcessHeap(), 0,
p);
 }
  };
#endif // _VC80X

截图:

如果想用MFC而不用ATL/WTL, MSDN 上有一个MFCIE 的代码示例工程值得参考

http://msdn.microsoft.com/en-us/library/ms177540(VS.80).aspx

另外, Codeproject 上有一篇文章"WTL Browser"也不错 http://www.codeproject.com/KB/wtl/wtlbrowser.aspx

[IE编程] 多页面基于IE内核浏览器的代码示例,布布扣,bubuko.com

时间: 2024-12-19 07:24:04

[IE编程] 多页面基于IE内核浏览器的代码示例的相关文章

Windows上使用CEF嵌入基于chrome内核浏览器小例

CEF出来很久了,使用的也很广泛的,QQ里面很多地方都是嵌入的CEF浏览器(个人资料.微博.查找--),网上的资料也挺多的,大家可以搜搜看. 首先是下载CEF代码编译,通过里面的那两个例子你也可以依葫芦画瓢的.官方下载地址:http://cefbuilds.com/ 这里推荐一个很详细的解说:http://www.cnblogs.com/think/archive/2011/10/06/CEF-Introduce.html 重载CEF的各种"消息"处理类,当你需要自己处理或者自定义这些

python selenium中如何测试360等基于chrome内核的浏览器

转自:https://blog.csdn.net/five3/article/details/50013159 直接上代码,注意是基于chrome内核的浏览器,基于ie的请替换其中的chrome方法为ie,但自己未尝试过,如果有结果可以告知! from selenium.webdriver.chrome.options import Optionsfrom selenium import webdriverfrom selenium.webdriver.common.keys import Ke

分享个Duilib中基于wke的浏览器控件

概述 wke是基于谷歌chrome浏览器源代码的裁剪版本,大小仅仅只有10M左右,无需依赖其他的扩展库(跟CEF的一大堆大约40M的DLL来比简直爽呆了),就可以在本地使用谷歌内核快速加载网页.网上也有基于wke在Duilib 上扩展的控件代码,其实wke头文件挺清楚的了,接口一目了然,特别是JS与C++交互的函数更是容易看懂,也没什么难的,你也可以做到的. 代码 毕竟是裁剪库,有的功能还是没有接口来处理的(比如网页加载前.页面跳转.菜单消息--),头文件代码: #ifndef __UIWKEW

不同内核浏览器的差异以及浏览器渲染(转)

一.简单介绍一下什么是浏览器内核. 浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“解释引擎”,不过我们一般习惯将之称为“浏览器内核”.负责对网页语法的解释(如HTML.JavaScript)并渲染(显示)网页. 所以,通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息.不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核

【转】不同内核浏览器的差异以及浏览器渲染简介

一.简单介绍一下什么是浏览器内核. 浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“解释引擎”,不过我们一般习惯将之称为“浏览器内核”.负责对网页语法的解释(如HTML.JavaScript)并渲染(显示)网页. 所以,通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息. 不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内

不同内核浏览器的差异以及浏览器渲染简介

一.简单介绍一下什么是浏览器内核. 浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“解释引擎”,不过我们一般习惯将之称为“浏览器内核”.负责对网页语法的解释(如HTML.JavaScript)并渲染(显示)网页. 所以,通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息.不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核

不同内核浏览器的差异以及浏览器渲染简介(转)

一.简单介绍一下什么是浏览器内核. 浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“解释引擎”,不过我们一般习惯将之称为“浏览器内核”.负责对网页语法的解释(如HTML.JavaScript)并渲染(显示)网页. 所以,通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息.不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核

八大Webkit内核浏览器

列举出时下最流行的Webkit内核浏览器,所以我们并不会做出评测和对比.PS:本文列举的浏览器有一部分为IE+Webkit双核浏览器,如果您对其他IE内核浏览器很感兴趣<抛弃数据!用体验和感觉告诉你什么才是最好用的浏览器!>一文可能会对你有所帮助.尖端技术的Webkit内核WebKit 是一个开源的浏览器引擎,与之相对应的引擎有Gecko(Mozilla Firefox 等使用)和Trident(也称MSHTML,IE 使用).同时WebKit 也是苹果Mac OS X 系统引擎框架版本的名称

网页页面NULL值对浏览器兼容性的影响

网页页面NULL值对浏览器兼容性的影响       近期做项目中一个页面中的input radio出现浏览器兼容性问题. 主要问题: 在谷歌浏览器,360急速模式和搜狗急速模式中给radio初始动态赋值时.checked属性失效,无法选中.注:360急速模式和搜狗急速模式使用了谷歌chorme的内核(又称webkit内核). 在火狐浏览器中给radio初始动态赋值时,checked属性正常选中. 本来同事以为是浏览器兼容问题,始终未能解决这个问题.后来这个Bug交由我来改动. 初始接到任务时,也