c++ - 在 Visual Studio C++ 2008 Windows 窗体应用程序中修复浏览器与 webBrowser 组件的依赖关系?

标签 c++ visual-studio browser

我正在开发一个基本程序,我尝试添加一个工作的 webBrowser 组件,以便为用户提供更大的灵 active 并能够从程序中浏览某些网站,但是我已经运行陷入一个我无法解决的问题。

大多数现代网站对新浏览器都有一定的依赖性,例如,如果您从 webBrowser 组件中访问 youtube,它会告诉您升级到更现代的浏览器。还有其他网站问题,例如透明度问题、位图问题、布局丢失或错位等等。例如,使用 webBrowser 组件访问 StackOverflow 会使网站看起来很奇怪,并且 Logo 不透明。

我使用这段代码在窗口中打开了一个网络浏览器:

                    this->webBrowser1->Dock = System::Windows::Forms::DockStyle::Fill;
            this->webBrowser1->Location = System::Drawing::Point(0, 0);
            this->webBrowser1->MinimumSize = System::Drawing::Size(20, 20);
            this->webBrowser1->Name = L"webBrowser1";
            this->webBrowser1->Size = System::Drawing::Size(823, 587);
            this->webBrowser1->TabIndex = 0;
            this->webBrowser1->Url = (gcnew System::Uri(L"http://www.google.com", System::UriKind::Absolute));

此代码用于在文本字段中输入网站后单击按钮导航到某个网站:

private: System::Void toolStripButton1_Click(System::Object^  sender, System::EventArgs^  e) {
                 webBrowser1->Navigate(toolStripTextBox1->Text);
             }

我的问题是,如何解决这些依赖关系? Visual Studio 本身有问题吗? (因为我使用的是 2008 版本)还是默认使用 IE7 选项?如果是这样,您如何修复它以使网站正确加载并按预期工作?

最佳答案

据我所知,WebBrowser 控件在默认模式下呈现页面,通常是 IE7,但是,根据您的描述,听起来您的控件实际上是在 IE6 模式下呈现。这表明您的开发机器上只安装了 IE6。

似乎解决此问题的唯一方法是向网页添加元标记或更改注册表中的默认模式。有关更多信息,请查看 this post .这可能会有所帮助。

就个人而言,我建议使用不同的浏览器控件,因为您可能永远无法真正控制您的工具的用户在 IE 中看到的内容。 Webkit 和 Gecko 都是免费且易于使用的,它们是最新的并且提供更多的功能,如果您可以接受额外的依赖项的话。

关于c++ - 在 Visual Studio C++ 2008 Windows 窗体应用程序中修复浏览器与 webBrowser 组件的依赖关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8754795/

相关文章:

c++ - 标识符未被初始化

c++ - MS Visual Studio 2010 C++ 预处理器 - 如果函数在宏中定义并在其他地方调用,未定义时是否有任何开销

visual-studio - 从哪里获得调试器变量的完整列表?

ios - 移动应用程序的 openweathermap API 问题

wpf - MVVM 将 EventArgs 作为命令参数传递

c++ - 二叉树节点子节点的高效选择

c++ - pair<int,int> 对作为 unordered_map 问题的关键

visual-studio - 使用 Visual Studio 2010 Express 构建 webpart

python - 不能声明双数组?

ms-access - 如何刷新 WebBrowser 控制 MS Access