ImGui::Begin 设置标题头背景色
时间: 2023-09-12 18:13:23 浏览: 154
sfml-imgui:imgui 的 SFML 后端
ImGui::Begin 函数不支持直接设置标题头背景色,但可以通过以下方法实现:
1. 使用 ImGui::GetStyle() 函数获取当前样式。
2. 修改样式中的 Colors 数组,将想要修改的颜色值替换为新值。
3. 在 ImGui::Begin 函数之前调用 ImGui::PushStyleVar 函数,将修改后的样式推入样式堆栈中。
4. 在 ImGui::End 函数之后调用 ImGui::PopStyleVar 函数,将修改后的样式从堆栈中弹出,恢复原始样式。
示例代码:
```
ImGui::GetStyle().Colors[ImGuiCol_TitleBg] = ImVec4(1.0f, 0.0f, 0.0f, 1.0f); // 将标题头背景色设置为红色
ImGui::PushStyleVar(ImGuiStyleVar_WindowTitleAlign, ImVec2(0.5f, 0.5f)); // 设置标题居中
ImGui::Begin("My Window"); // 打开窗口
// ... 窗口内容 ...
ImGui::End(); // 关闭窗口
ImGui::PopStyleVar(); // 恢复原始样式
```
这将使窗口的标题头背景色变为红色,并将标题居中对齐。请注意,修改样式后,要使用 PushStyleVar 函数将其推入堆栈,以便在之后的代码中使用。结束时,务必使用 PopStyleVar 函数将其从堆栈中弹出,以免影响后续代码的样式。
阅读全文