文档手册

window.New创建窗口时指定标志位参数

2024-07-11 00:59:47

代码如下:

w, _ := window.New(
   sciter.SW_MAIN|sciter.SW_CONTROLS|sciter.SW_RESIZEABLE|sciter.SW_ENABLE_DEBUG,
   &sciter.Rect{0, 0, 500, 500})

这些是 Sciter SDK 中用于创建窗口的不同标志位(WindowCreationFlag),每个标志位控制窗口的不同特性和行为。以下是每个标志位的具体含义和作用:

  1. SW_CHILD:

    • 作用:指示窗口是子窗口,通常嵌入到其他窗口中。

    • 详情:如果设置了这个标志,其他所有标志将被忽略,窗口将作为父窗口的子级存在。

  2. SW_TITLEBAR:

    • 作用:指示窗口具有标题栏。

    • 详情:适用于顶级窗口,显示窗口的标题栏,但不包含其他系统控件。

  3. SW_RESIZEABLE:

    • 作用:指示窗口可调整大小。

    • 详情:允许用户通过拖拽窗口边界来调整窗口的大小。

  4. SW_TOOL:

    • 作用:指示窗口是工具窗口。

    • 详情:通常用于显示工具界面或辅助功能窗口,具体表现可以根据操作系统的窗口管理规则而有所不同。

  5. SW_CONTROLS:

    • 作用:指示窗口包含系统控件,如最小化和最大化按钮。

    • 详情:在使用 SW_TITLEBAR 时,通常与之组合使用,表示窗口具有标准的系统控件。

  6. SW_GLASSY:

    • 作用:指示窗口是玻璃窗口。

    • 详情:在支持玻璃效果的操作系统上(如 Windows 中的 DwmExtendFrameIntoClientArea),窗口可以呈现半透明的玻璃效果。

  7. SW_ALPHA:

    • 作用:指示窗口是透明窗口。

    • 详情:允许窗口内容透过窗口背景显示,通常使用 Windows 的 WS_EX_LAYERED 扩展风格实现。

  8. SW_MAIN:

    • 作用:指示窗口是应用程序的主窗口。

    • 详情:通常用于标识应用程序的主要用户界面窗口,关闭这个窗口可能会终止整个应用程序。

  9. SW_POPUP:

    • 作用:指示窗口是弹出式窗口。

    • 详情:创建一个位于顶部的弹出式窗口,通常没有标题栏和边框。

  10. SW_ENABLE_DEBUG:

    • 作用:启用调试模式。

    • 详情:在调试模式下,Sciter SDK 提供了额外的调试功能,如 JavaScript 调试器和 DOM 查看器等工具。

  11. SW_OWNS_VM:

    • 作用:指示窗口拥有自己的脚本虚拟机(VM)。

    • 详情:窗口可以独立运行其脚本,不与其他窗口共享同一个虚拟机实例。

这些标志位可以按位或(bitwise OR)组合使用,以实现多个功能或行为的组合。具体的实现和行为可能会因 Sciter SDK 的版本和具体平台而略有不同,建议查阅相关的 Sciter SDK 文档或 API 参考以获取更详细的信息和用法示例。


  • 以下是 WindowCreationFlag 枚举中每个标志的详细说明:
    SW_CHILD (值:(1 << iota))表示子窗口。如果设置了此标志,则忽略所有其他标志。
    SW_TITLEBAR表示顶级窗口,具有标题栏。
    SW_RESIZEABLE 表示窗口可以调整大小。 
    SW_TOOL 表示工具窗口。工具窗口通常是一个浮动的、无边框的窗口。
    SW_CONTROLS 表示窗口具有最小化和最大化按钮。
    SW_GLASSY 表示玻璃窗口。在 Windows 上,这意味着使用 DwmExtendFrameIntoClientArea 创建玻璃效果。
    SW_ALPHA 表示透明窗口。 例如,在 Windows 上使用 WS_EX_LAYERED 创建的窗口。
    SW_MAIN 表示应用程序的主窗口。 关闭主窗口时,将终止应用程序。
    SW_POPUP 表示窗口创建为最顶层窗口(popup window)。
    SW_ENABLE_DEBUG 使窗口具备调试功能。 这意味着该窗口准备好进行检查和调试。
    SW_OWNS_VM 表示窗口具有自己的脚本虚拟机(VM)。每个设置此标志的窗口将拥有独立的脚本执行环境。
    这些标志用于在创建窗口时指定窗口的属性和行为,通过组合不同的标志,可以创建具有特定功能的窗口。