gpt4 book ai didi

html - 在 Windows (XP +) C++ 应用程序中嵌入 HTML/CSS/JS 内容的最简单方法?

转载 作者:可可西里 更新时间:2023-11-01 11:39:32 26 4
gpt4 key购买 nike

我有一个使用 Visual Studio 2010 用 C++ 编写的应用程序作为 .EXE 在 Windows(XP 版本以上)上运行。它为现有 UI 使用纯 Win32。

我也有一些基于网络浏览器格式的内容,HTML/CSS/JavaScript。我希望在应用程序窗口中显示此内容,就像 WebView 在 Android 上的工作方式和 UIWebView 在 iPhone 上的工作方式一样。 Web 内容应该能够通过调用自定义 JavaScript 方法与周围的 native 应用程序进行通信。

我知道 WebKit 项目。但是,查看可供下载的二进制文件,它似乎作为一个独立的应用程序呈现,而不是一个可以链接到 C++ 应用程序以允许显示浏览器内容的库。

谁能推荐一个好的方法?

最佳答案

如果您使用的是 MFC,Patrick 的回答是正确的。

如果您不使用 MFC,则可以使用“ATL 控件包含”嵌入 Internet Explorer - 请参阅 How to add ATL control containment support to any window in Visual C++ .

归结为链接正确的库,然后使用这个单行代码:

// Creates the Web Browser control and navigates to the 
// specified web page.
HWND hWnd = ::CreateWindow("AtlAxWin", "http://www.microsoft.com",
WS_CHILD|WS_VISIBLE, 10, 10, 500, 300, hParent, NULL,
::GetModuleHandle(NULL), NULL);

让 JavaScript 调用 C++ 应用程序中的函数有点麻烦 - 您需要创建一个实现 IDispatch 的对象,然后将其传递给 Advise IE 控件的IConnectionPoint 接口(interface)的方法,您通过IConnectionPointContainer::FindConnectionPoint 获得。然后,您的 JavaScript 调用 window.external.my_func(...),这成为对 IDispatch 实现对象的 Invoke 方法的调用。

关于html - 在 Windows (XP +) C++ 应用程序中嵌入 HTML/CSS/JS 内容的最简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3823328/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com