API 参考
正在准备搜索索引…

ImGui.BeginPopup

  • 开始向已打开的弹出窗口追加内容。

    参数

    str_id
    string | Uint8Array

    字符串标识符,与当前 ID 栈一起散列以区分此项或作用域。

    flags
    number = 0

    控制此操作的 ImGuiWindowFlags 选项;可用 | 组合兼容的标志位。

    返回值

    boolean

    此作用域打开或激活且可提交内容时返回 true。仅为 true 时调用 EndPopup();为 false 时跳过内容和配对结束调用。

    弹出窗口与模态窗口:

    • 会阻止其后方正常的鼠标悬停检测(因而阻止大多数鼠标交互)。

    • 非模态窗口可通过点击外部任意位置或按 ESCAPE 关闭。

    • 可见性状态(约等于 bool)保存在内部,而不是像常规 Begin*() 调用那样由程序员保存。

    • 上述三个特性相关:弹出窗口可能随时关闭,因此库需要保存其可见性状态。

    • 调用 IsItemHovered() 或 IsWindowHovered() 时使用 ImGuiHoveredFlags.AllowWhenBlockedByPopup 可绕过悬停限制。

    • 重要:弹出窗口标识符相对于当前 ID 栈,因此 OpenPopup 和 BeginPopup 通常必须位于栈的同一层级。这有时会导致令人困惑的错误,未来可能重新设计。

    • BeginPopup():查询弹出窗口状态;若已打开,则开始向窗口追加内容。返回 true 后必须调用 EndPopup()。ImGuiWindowFlags 会传给窗口。

    • BeginPopupModal():阻止窗口后方的一切交互,用户不能直接关闭它,添加变暗背景并带有标题栏。弹出窗口打开时返回 true,此时可开始向其输出内容。

    源码与继承

Icons made by Lorc, Delapouite & Skoll · game-icons.net · CC BY 3.0