如何在Awesomium应用程序中隐藏关闭、最小化和最大化按钮以及周围的边缘?

3

是否有可能隐藏包含Awesomium应用程序的窗口的本机关闭、最大化和最小化按钮以及周围的边缘。

enter image description here

我希望您能帮助设计一个美观的关闭、最大化和最小化按钮,使其在HTML文档中具有与本机按钮相同的隐藏功能。
以下是我的C++代码。
// Inherited from Application::Listener
  virtual void OnLoaded() {
    view_ = View::Create(500, 300);

    WebURL url(WSLit("file:///C:/Users/awesomium/Documents/app.html"));
    view_->web_view()->LoadURL(url);
  }

我的HTML文件内容如下

<html>
<body>
<h1>Hello World</h1>
<script type="text/javascript">
document.write("You are running Awesomium " + awesomium.version);
</script>
</body>
</html>

注意:我对Awesomium和C++都比较新(从某种意义上来说)..简单易懂的解释会很好!
1个回答

4
您可以通过在创建窗口时设置dwStyle属性来控制Windows窗口的特性。
我使用了Awesomium教程2 (http://wiki.awesomium.com/tutorials/tutorial-2-displaying-your-first-page.html) 。
找到ViewWin(int width, int height) 构造函数并编辑CreateWindow的调用。以下示例创建一个没有边框和标题的窗口。
hwnd_ = CreateWindow(
          szWindowClass,
          szTitle,
          WS_POPUP | WS_VISIBLE | WS_SYSMENU,
          CW_USEDEFAULT,
          CW_USEDEFAULT,
          width + 20,
          height + 40, 
          NULL,
          NULL,
          hInstance,
          NULL);

我尝试时遇到了一个问题,WndProc被过早地调用(视图指针仍为NULL),因此我添加了一个快速修复程序使应用程序运行。

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {

...

case WM_SIZE:
  if (view == NULL) return 0; // Quick fix to not call view until it is fully initialized
  view->web_view()->Resize(LOWORD(lParam), HIWORD(lParam));
break;

...

这可能不是最佳方法,你或许能想出更好的方案?创建的窗口如下所示:

没有标题和边框的 Awesomium "Hello World"

我希望这能帮助你找到正确的方向,使你的应用程序按照你的意愿正常工作。

谢谢,老兄...在我升级内核后,Awesomium无法启动...我浏览了网页并发现,在Linux上使用>3.0内核运行Awesomium Webkit存在一个错误。所以我没有在升级后测试它...看到快照后,我会接受你的努力...:D - repzero
你好!你在使用Linux系统吗?抱歉,我必须承认我的示例是针对Windows的,因为你的示例看起来非常像Windows窗口。但基本思路仍然适用,只是你需要阅读Linux平台窗口创建调用的定义。我会尽力找到一个适用于Linux平台的答案,但我不能保证。 - Kjell-Olov Högdahl
@ Kjell-Olov Högdahl... 我使用 Linux 系统... 当你在 Linux 上测试完成后,把结果添加到您的回答中即可.. 感谢。 - repzero

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接