谷歌浏览器的源码分析(6)

系统 1596 0
前面已经介绍了这么引人的输入自动完成功能,并且可以在输入超级连接框里直接通过 GOOGLE 搜索所有的内容,这是比较大的创新,不但可以节省界面的占用面积,还很方便大家查询的需要,比如记不住的连接,根本不需要去记了,只要你记住需要的内容就行了。这样既不需要到什么门户网站去找连接,也不需要去记住众多的网站,这个功能是非常方便的。

这个输入框的自动完成的功能,是比较智能化的。因为它会根据以往的输入自动完成,或者智能提示所需要的连接或者内容。

下面就来先看这个类的定义:

#001   // Provides the implementation of an edit control with a drop-down

#002   // autocomplete box. The box itself is implemented in autocomplete_popup.cc

#003   // This file implements the edit box and management for the popup.

#004   //

#005   // This implementation is currently appropriate for the URL bar, where the

#006   // autocomplete dropdown is always displayed because there is always a

#007   // default item. For web page autofill and other applications, this is

#008   // probably not appropriate. We may want to add a flag to determine which

#009   // of these modes we're in.

#010   class AutocompleteEdit

#011       : public CWindowImpl<AutocompleteEdit,

#012                            CRichEditCtrl,

#013                            CWinTraits<WS_CHILD | WS_VISIBLE | ES_AUTOHSCROLL |

#014                                       ES_NOHIDESEL> >,

#015         public CRichEditCommands<AutocompleteEdit>,

#016         public Menu::Delegate {

 

AutocompleteEdit 继承了类 CWindowImpl 、类 CRichEditCommands 、类 Menu::Delegate 。其中类 CWindowImpl 实现了 Windows 窗口,它是 WTL 里的窗口模板类,主要用来创建窗口界面类,并且使用类 CRichEditCtrl 作为基类,类 CRichEditCtrl 主要调用 Windows 里的编辑类。类 CRichEditCommands 实现 RichEdit 的命令功能。 Menu::Delegate 类是实现智能下拉式菜单的提示界面。因此,要学习开发 chrome ,需要先学习 WTL 的开发,它是一套基于模板的窗口框架。下一次再仔细地分析自动完成的实现过程。

谷歌浏览器的源码分析(6)


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论