如何在加载页面时为 IWebBrowser2 设置背景颜色?

How do I set a background colour for IWebBrowser2 whilst page is loading?

标题说明了一切……

我正在使用 IWebBrowser2 在我的应用程序中显示网页,但是,当我调用 IWebBrowser2::Navigate() 时,在加载目标页面时显示白色背景,这与配色方案冲突我的应用程序。

我尝试在调用 Navigate() 之前创建 "background.html" 和 pre-loading,但是当我导航到新的 URL 时,背景立即变为白色。

这是未经测试的:

  1. 隐藏浏览器window。我记得调用 ShowWindow(SW_HIDE) 是行不通的,因为浏览器控件在其 window 被隐藏时不执行任何操作。相反,您可以 MoveWindow() 在客户区之外有效地隐藏它,同时它仍然认为它是可见的。
  2. 在浏览器控件的父 window 中绘制自定义背景。
  3. 致电IWebBrowser2::Navigate()
  4. 处理 NavigateComplete 事件,您再次向浏览器显示 window。它应该在不首先显示白色背景的情况下快速重绘自身。