一个多进程多Tab浏览器的构思及实现

一个偶然的机会,开始了我的浏览器设计,这是设计后的结果。

如果你想找到我,就去菜单中的关于里面找。



说一说这个浏览器的设计吧,主要参照了3款浏览器,一个WTL自带的浏览器,还有两个都是咱们CSDN上的,其中一个是Raptor浏览器,这个借鉴了非常大,还有一个找不到了,非常感谢他们。


整个架构基本上就是ATL+WTL,采用多进程,主进程只是界面进程,子进程是浏览器进程,负责页面导航。

这样设计就有个难度,当你在一个页面中点击一个超链接,这个事件是在子进程中发生的,你要通知到主进程,主进程要先创建一个Tab页,在去创建

一整个子进程,这个新创建的浏览器子进程负责导航到新的页面。


这个浏览器还使用了异步可插协议实现新建标签页,使用双层窗口实现阴影边框,

实际上你看不到阴影边框,因为他的透明度是1,界面上我将谷歌浏览器的一些图片拿来使用。

所以界面上的一些按钮那是我画上去的,这样做你知道处理鼠标消息会有多难吗,我要计算好多的坐标。

实际上界面参照了金山界面库的实现方法,但是我并没有使用金山界面库,原因很简单,对于我来讲我只有Tab控件和Button需要重绘。

不必要为此引入一个界面库。

我的菜单也是自绘的,他实际上就是一个窗口里有一排的Button,这个想法真是酷毙了。

还有就是加速键的处理也有个难度,因为加速键是主进程处理的,所以当焦点在子进程中的时候,需要将鼠标和键盘消息全部转发到主进程。

这样主进程才会感知到减速键。


就说这么多吧,至于这个浏览器怎么样,你可以去这里下载http://download.csdn.net/detail/qq112358hai198771/9713696,自己体验。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值