通过上一次的分析,我们看到所有网页数据经过HTML分析器之后,都会变成一个一个RenderObject对象,那么这些RenderObject对象又是怎么样显示到界面上面的呢?现在就带着这个疑问来分析下面的代码,这样肯定会找到解决方法的。怎么样找到入口呢?其实可以先从界面显示的类开始,可以看到显示界面的窗口类名称叫做Chrome_RenderWidgetHostHWND,有了这个类名称,就可以到代码里查看它在那里了。
#001 class RenderWidgetHost;
#002 class WebMouseEvent;
#003 class WebCursor;
#004
#005 typedefCWinTraits<WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS, 0>
#006 RenderWidgetHostHWNDTraits;
#007
#008 static const wchar_t* constkRenderWidgetHostHWNDClass =
#009 L"Chrome_RenderWidgetHostHWND";
可看到这个窗口类名称是定义在这里,再跟着kRenderWidgetHostHWNDClass来查找,就会找到显示窗口,如下:
#001 class RenderWidgetHostHWND :
#002 publicCWindowImpl<RenderWidgetHostHWND,
#003 CWindow,
#004 RenderWidgetHostHWNDTraits>,
#005 publicRenderWidgetHostView {
</