Chrome是如何为浏览器创建不同的GUI的?

bod*_*ydo 6 windows user-interface google-chrome

我对Chrome如何编写如此美观的GUI感兴趣?他们使用了哪些库和方法?

我特别惊讶的是它100%像常规GUI一样 - 你可以通过蓝色条带拖动它,而常规按钮[_,o,x]的制作方式也不同.标签拖动也是如此无缝.实际上,您可以在现有GUI之外拖动一个选项卡,它将流畅地创建一个新窗口.

有谁知道更多关于此的细节?

我在问,因为我也想为我的应用程序编写漂亮的GUI.这是了解这一过程的良好开端.

谢谢,Boda Cydo.

Ada*_*son 9

我建议不要采取这种方法.虽然Chrome确实具有吸引人的GUI,但打破目标平台的设计准则很少(但有时)是创建有吸引力,可用,直观的用户界面的途径.

如果您希望了解开发UI的过程,那么我建议您探索目标平台的设计指南(Windows,在您的情况下会出现).

  • @Jim:我不打算说没有人应该发布非标准的用户界面.我说如果有人试图学习如何设计用户界面,那么在开始时打破标准*可能是一个坏主意.这就是创建Geocities页面的那种东西!除了开玩笑,我基本上建议在跑步前走路; 采用可用的标准,使用它们,然后在你知道自己在做什么后再打破它们. (4认同)
  • 这是一个很好而有趣的答案.我完全赞同坚持平台的设计指南,但那提出了一个创新问题.我们显然没有坚持使用Windows 3.1 UI,但是如果您打开Norton Antivirus,Google Chrome或任何全屏应用程序(或将XP与Vista比较到Win7/Gnome到KDE),您将看到完全不同的UI.那么,你在哪里绘制谁来发布创新UI以及谁不发布? (2认同)

Mon*_*ong 6

Chrome是开源的.他们还发布了相当全面的设计文档.

你应该能够看看他们到底做了什么!


bob*_*obo 6

可能纯粹是Windows API.

Win32中有一些函数可以覆盖Window行为/和/或几乎任何方面.例如,您可以拦截WM_NC_PAINT消息以绘制"非客户区域"(标题栏和最大/最小按钮).事实上,您可以在任何应用上执行此操作.

  • 事实上,Chrome使用[WTL](http://www.hanselman.com/blog/TheWeeklySourceCode33MicrosoftOpenSourceInsideGoogleChrome.aspx). (8认同)